2011-05-18 6 views
6

Tüm görüntüleri bir webroot dışındaki bir dizinden yüklemek için bir görüntü denetleyicisi kullanan bir çerçeve üzerinde çalışıyorum ve bu CSS içinde kullanılan görüntüleri içerir. Ör:Bir XHTML belgesindeki CSS'deki ampersanları nasıl kullanabilir ve hala doğrulayabilirim?

background: #FFF url(example.org/index.php?sect=loadimg&img=branding.jpg) top left repeat-x; 

Bu iş tamam gibi görünüyor, ama benim xhtml doğrulayıcı CSS'deki ve işareti kullanımını sevmez ve bunun yerine & kullanarak tüm çalışmaz. Yani stil sayfalarında böyle bir ampersan kullanmak yasal olup olmadığını bilen var mı? Değilse, aynı görüntü isteğini gerçekleştirmek için başka bir yolu var mı?

cevap

10

Doğrulayıcı yalnızca bir XHTML doctype ile doğrulanıyorsanız şikayette bulunur. <style> ve <script> öğelerinde ayrılmamış HTML karakterlerinin bulunması normal HTML'de (hem 4.01 hem de 5) geçerli olarak kabul edilmelidir.

İdeal çözüm, CSS'nizi harici bir stil sayfasına taşımak ve <link> veya @import'u kullanarak eklemektir.

senin stilleri olsa da, size <style> etiketleri içinde CDATA bölümleri ekleyebilir, <style> etiketleri bulunması gerekir ise: tam anlamıyla tedavi edilmesi bu bölüm içindeki tüm HTML özel karakterler

<style type="text/css"> 
/* <![CDATA[ */ 

/* Your CSS here */ 

/* ]]> */ 
</style> 

Bu neden olur ve XHTML doğrulamak için belge.

CDATA bölümü sınırlayıcılarının yalnızca <![CDATA[ ve ]]> olduğunu unutmayın; /* CSS yorumlarına sarılarak */ tarayıcıları CSS olarak yorumlamaya çalışmazlar.

XHTML'deki CDATA bölümleri covered by the spec'dur.

+0

iyi bir çözüm gibi geliyor, bilgi için takdire şayan – Spoonface

+0

Yup, bu çözümü düzenli olarak kullanıyorum ve bana iyi hizmet etti. – BoltClock

İlgili konular