136 votos

El manejo de un colon en un elemento de IDENTIFICACIÓN en un selector CSS

JSF es la configuración de la ID de un campo de entrada para search_form:expression. Debo especificar algunos de estilo en ese elemento, pero que el colon se ve como el comienzo de un pseudo-elemento para el navegador de tal modo que sea marcado válido y se ignoran. Es de todos modos para escapar del colon o algo?

input#search_form:expression {
  ///...
}

107voto

Mark Cidade Puntos 53945

Barra diagonal inversa:

input#search_form\:expression {  ///...}

91voto

jomohke Puntos 720

Utilizar una barra diagonal inversa antes de los dos puntos no funciona en IE6 (y, al parecer IE7).

Una solución es usar el código hexadecimal para el colon - que es \3A

ejemplo:

input#search_form\3A expression {  }

Esto funciona tanto en internet explorer y firefox.

7voto

Mathias Bynens Puntos 41065

Este artículo le dirá cómo escapar de cualquier carácter en CSS.

Incluso ahora hay una herramienta para: http://mothereff.in/css-escapes#0search%5fform%3aexpression

TL;DR Todas las otras respuestas a esta pregunta son incorrectos. Necesitas escapar de ambos el carácter de subrayado (para evitar que IE6 del desconocimiento de la regla por completo en algunos casos el borde) y el carácter de dos puntos para el selector para que funcionen correctamente en los diferentes navegadores.

Técnicamente, el carácter de los dos puntos se puede escapar de la como \:, pero que no funciona en IE < 8, así que tendrás que usar \3a:

#search\_form\3a expression {}

5voto

Wayne Puntos 12304

Usted puede escapar de ella con una barra diagonal inversa

input#search_form\:expression {
  ///...
}

A partir de la Especificación CSS


4.1.3 Personajes y caso

Las siguientes reglas se mantenga siempre:

Todas las hojas de estilo CSS son insensibles a mayúsculas / minúsculas, excepto para las partes que no están bajo el control de CSS. Por ejemplo, el caso de la sensibilidad de los valores de los atributos de HTML "id" y "class", de los nombres de las fuentes, y de los Uri se encuentra fuera del alcance de esta especificación. Tenga en cuenta que los nombres de elementos que son insensibles a mayúsculas / minúsculas en HTML, pero entre mayúsculas y minúsculas en XML. En CSS, los identificadores (incluidos los nombres de elementos, las clases y los Identificadores de los selectores) sólo puede contener los caracteres [a-z0-9] e ISO 10646 caracteres U+00A1 y superior, además de que el guión (-) y subrayado (_); ellos no pueden comenzar con un dígito, o un guión seguido por un dígito. Los identificadores pueden contener caracteres de escape y cualquier ISO 10646 carácter de un código numérico (consulte el elemento siguiente). Por ejemplo, el identificador de "B&W?" puede escribirse como "B\&W\?" o "B\26 W\3F". Tenga en cuenta que con Unicode es el código por código equivalente a ISO 10646 (ver [UNICODE] y [ISO10646]).

En CSS 2.1, una barra diagonal inversa () carácter de indica tres tipos de personaje escapa. En primer lugar, dentro de una cadena, una barra invertida seguida por un salto de línea es ignorada (es decir, la cadena se considera que no contengan la barra invertida o la nueva línea).

Segundo, anula el sentido de la especial CSS caracteres. Cualquier carácter (excepto un dígito hexadecimal) se puede escapar con una barra diagonal inversa para eliminar su significado especial. Por ejemplo, "\"" es una cadena que consta de una doble cita. Hoja de estilo preprocesadores no debe quitar estas barras a partir de una hoja de estilo desde que iba a cambiar la hoja de estilo del significado.

Tercero, la barra invertida se escapa de permitir que los autores se refieren a personajes que no se puede poner fácilmente en un documento. En este caso, la barra invertida es seguido por más de seis dígitos hexadecimales (0..9..F), de los cuales se destacan por la ISO 10646 ([ISO10646]) personaje con ese número, el que no debe ser cero. (No se ha definido en el CSS 2.1 ¿qué sucede si una hoja de estilo contiene un carácter de punto de código Unicode cero.) Si un personaje en el rango [0-9a-f] sigue el número hexadecimal, de la final de el número debe ser hecho claro. Hay dos maneras de hacerlo:

con un espacio (o de otro carácter de espacio en blanco): "\26 B" ("&B"). En este caso, los agentes de usuario debe de tratar de un "CR/LF" par (U+000D/U+000A) como un único carácter de espacio en blanco. al proporcionar exactamente 6 dígitos hexadecimales: "\000026B" ("&B") De hecho, estos dos métodos pueden ser combinados. Sólo un carácter de espacio en blanco es ignorado después de un escape hexadecimal. Tenga en cuenta que esto significa que un espacio "real" después de la secuencia de escape debe ser escapado o se doble.

Si el número está fuera del intervalo permitido por Unicode (por ejemplo, "\110000" está por encima de la máxima 10FFFF permitido en la actual Unicode), la UA puede reemplazar a la fuga con el "carácter de reemplazo" (U+FFFD). Si el personaje se va a mostrar, la UA debe mostrar un símbolo visible, como una "falta de carácter" glifo (cf. 15.2, punto 5).

Nota: la barra invertida se escapa, en caso de autorizarse, siempre son considerados parte de un identificador o una cadena (es decir, "\7B" no es signo de puntuación, aunque "{" y "\32" se permite al comienzo del nombre de una clase, aunque "2" no es). El identificador "te\st" es exactamente el mismo identificador como "prueba".

4voto

Krishna Puntos 1602

En JSF 2,0, puede especificar el separador de uso de la web.xml archivo como init-param de javax.caras.SEPARATOR_CHAR

Leer esto:

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: