2012-06-20 10 views
5

que tienen una hoja de estilo con el siguiente código:Compresor YUI y contenido CSS?

.author-name:before { 
content:"by: "; 
} 

Cuando ejecuto esto a través de compresor YUI, me sale:

.author-name:before{content:"by:"} 

Este es un problema, ya que elimina los espacios en blanco previsto. Pensé usando los comentarios especiales YUI Compressor, así:

.author-name:before { 
    /*!YUI-Compressor */content: "by: "; 
} 

... podría ayudar, pero parece que no. Además, los comentarios se borraron. Mi impresión basada en la era que los comentarios en JavaScript comienzan con /*!get preserved, pero eso no está sucediendo en realidad.

Demasiado tiempo para procesar mi proceso de compilación para desmenuzar, ¿hay alguna manera de hacerlo? Actualmente estamos utilizando la versión 2.3.5 del compresor YUI, y funcionando con las banderas --charset utf8 -v -o

Así que mi pregunta, en definitiva, es, ¿hay una manera de conseguir YUI Compresor de respetar los espacios en los valores de content:, o una manera para agregar comentarios CSS antes y después de un bloque que no quiero minificado?

Respuesta

4

Como solución, trate de usar entidad Unicode en lugar de por sí carácter de espacio:

.author-name:before {content: "by:\00A0"; } 

\00A0 en particular, es el espacio de no separación.

+0

Esta es una buena solución. Todavía estoy esperando un arreglo de YUI Compressor. ¿Qué tan bien se admite la sintaxis '\ 00A0' en los navegadores que admiten' content' para CSS 'content'? – artlung

+1

Perfectamente compatible con todos los principales navegadores, incluido IE8 +. La única incoherencia que he encontrado es el uso de literales compuestos como '" foo "" bar "' que tiene problemas en IE por lo que recuerdo, pero este no es el caso. –

1

Es posible añadir un margen al contenido:

.author-name:before { 
    content: "by:"; 
    margin: 0 .35em 0 0; 
} 
+1

.3em o incluso .35em suele estar más cerca del ancho del carácter del espacio. –

+0

buen punto. siempre es mejor usar las propiedades CSS pretendidas para espacios en lugar de espacios en blanco. – apparat

+0

@MaratTanalin: gracias, ajustado. – erenon

2

Probé tu css usando la versión 2.3.4 y 2.4.6 y ambas conservan el espacio dentro de la cadena. Por lo tanto, es un error muy específico (no se puede encontrar nada en el rastreador de errores) o algo más está fallando. ¿Estás seguro de que es un personaje de espacio ascii y apóstrofos regulares (no los inteligentes de Windows o algo así)?

Cuando ejecuto una prueba en el mismo css reemplazando las comillas ascii con el carácter unicode 201C, una comilla doble a la izquierda, se quita el espacio. La razón es bastante simple: el analizador no lo reconoce como una cadena y por lo tanto elimina espacio en blanco.

Es posible que desee probar la última versión desde aquí http://yuilibrary.com/download/yuicompressor/ de todos modos. En caso de que su versión actual esté instalada usando algún administrador de paquetes: simplemente extraiga el archivo .jar de la carpeta 'compilar' de los archivos.

+0

Gracias por consultar. Eso es tan extraño que se comporta de manera diferente. Lo estoy resolviendo con las cadenas de CSS que se han escapado, y eso parece satisfacer mis necesidades, pero cuando revisemos las herramientas en este proyecto, probaré las versiones más actuales de YUI Compressor. – artlung

+0

Ah, y sí, estoy bastante seguro de que es el espacio estándar y los caracteres de comillas en el CSS, no los caracteres de Windows. Y es solo el espacio el que se desnuda. – artlung

+0

Se agregó otra prueba para aclarar el comentario sobre las cotizaciones y un caso en que los espacios se eliminan. –

Cuestiones relacionadas