2011-05-18 15 views
6

Estoy trabajando en un marco que utiliza un controlador de imagen para cargar todas las imágenes de un directorio fuera de la web raíz, y esto incluye las imágenes utilizadas en el CSS. Por ejemplo:¿Cómo puedo usar ampersands en CSS dentro de un documento XHTML y todavía validar?

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

Esto parece funcionar bien, pero mi validador XHTML no le gusta el uso del signo en el CSS, y el uso de & lugar no funciona en absoluto. Entonces, ¿alguien sabría si es legal usar un ampersand como este en las hojas de estilo? Si no, ¿hay alguna otra manera de lograr la misma solicitud de imagen?

Respuesta

10

El validador se quejará si usted está validando contra un tipo de documento XHTML. Tener los caracteres HTML sin escindir dentro de los elementos <style> y <script> aún se debe considerar válido en HTML normal (tanto 4.01 como 5).

La solución ideal es mover su CSS a una hoja de estilo externa e incluirla usando <link> o @import.

Si sus estilos deben residir en <style> etiquetas, sin embargo, puede agregar secciones CDATA dentro de sus <style> etiquetas:

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

/* Your CSS here */ 

/* ]]> */ 
</style> 

Esto hará que todos los caracteres especiales HTML dentro de esa sección a tratar literalmente, y su XHTML documento para validar

Tenga en cuenta que los delimitadores de sección CDATA son solo <![CDATA[ y ]]>; están envueltos en /* comentarios CSS */ para que los navegadores no intenten interpretarlos como CSS.

Las secciones de CDATA en XHTML son covered by the spec.

+0

suena como una buena solución, aplausos por la información muy apreciada – Spoonface

+0

Sí, he estado usando esta solución regularmente y me ha sido muy útil. – BoltClock

Cuestiones relacionadas