se puede escapar con una barra invertida
input#search_form\:expression {
///...
}
De los CSS Spec
4.1.3 Caracteres y caso
Las siguientes reglas siempre sostienen:
Todas las hojas de estilo CSS son sensibles a mayúsculas, excepto para las partes que no están bajo el control de CSS . Por ejemplo, la sensibilidad a mayúsculas y minúsculas de los valores de los atributos HTML "id" y "clase", de nombres de fuentes y de URI queda fuera del alcance de esta especificación. Tenga en cuenta en particular que los nombres de los elementos no distinguen entre mayúsculas y minúsculas en HTML, pero distingue entre mayúsculas y minúsculas en XML. En CSS, los identificadores (incluidos nombres de elementos, clases e ID en selectores) pueden contener solo los caracteres [a-z0-9] e ISO 10646 caracteres U + 00A1 y superiores, más el guión (-) y el guión bajo (_); no pueden comenzar con un dígito, o un guión seguido de un dígito. Los identificadores también pueden contener caracteres escapados y cualquier carácter ISO 10646 como un código numérico (consulte el siguiente elemento). Por ejemplo, el identificador "B & W?" se puede escribir como "B \ & W \?" o "B \ 26 W \ 3F". Tenga en cuenta que Unicode es código por código equivalente a ISO 10646 (vea [UNICODE] y [ISO10646]).
En CSS 2.1, un carácter de barra diagonal inversa() indica tres tipos de caracteres que se escapan. Primero, dentro de una cadena, se ignora una barra invertida seguida de una línea nueva (es decir, se considera que la cadena no contiene ni la barra diagonal inversa ni la línea nueva).
En segundo lugar, cancela el significado de caracteres CSS especiales. Cualquier carácter (excepto un dígito hexadecimal) se puede escapar con una barra invertida para eliminar su significado especial. Por ejemplo, "\"" es una cadena que consiste en una doble cita. Preprocesadores de hojas de estilo no debe quitar estas barras invertidas de una hoja de estilo, ya que iba a cambiar el significado de la hoja de estilo.
En tercer lugar, se escapa de barra invertida permiten a los autores se refieren a caracteres que no pueden colocarse fácilmente en un documento. En este caso, la barra invertida es seguida por un máximo de seis dígitos hexadecimales (0..9A..F), que representan el carácter ISO 10646 ([ISO10646]) con ese número , que no debe ser cero. (No está definido en CSS 2.1 qué sucede si una hoja de estilo contiene un carácter con código cero Unicode.) Si un carácter en el rango [0-9a-f] sigue el número hexadecimal, el final del número debe aclararse. Hay dos formas de hacerlo:
con un espacio (u otro carácter itespace): "\ 26 B" ("& B"). En este caso, los agentes de usuario deberían tratar un par "CR/LF" (U + 000D/U + 000A) como un solo carácter de espacio en blanco. proporcionando exactamente 6 dígitos hexadecimales: "\ 000026B" ("& B") De hecho, estos dos métodos se pueden combinar. Solo se ignora un carácter de espacio en blanco después de un escape hexadecimal. Tenga en cuenta que esto significa que un espacio "real" después de la secuencia de escape debe escaparse o duplicarse.
Si el número está fuera del rango permitido por Unicode (por ejemplo, "\ 110000" está por encima del 10FFFF máximo permitido en Unicode actual), el UA puede reemplazar el escape con el "carácter de reemplazo" (U + FFFD). Si se va a mostrar el carácter, el UA debería mostrar un símbolo visible, como un glifo de "carácter faltante" (véase 15.2, punto 5).
Nota: Las escapatorias invertidas, siempre que estén permitidas, siempre se consideran parte de un identificador o cadena (es decir, "\ 7B" no es puntuación, aunque "{" es, y "\ 32" está permitido en el comienzo de un nombre de clase, aunque "2" no lo es). El identificador "te \ st" es exactamente el mismo identificador que "prueba".
http://mothereffingcssescapes.com/#search_form%3Aexpression –
[jomohke] (http://stackoverflow.com/users/3802/jomohke) 's [respuesta] (http://stackoverflow.com/a/656463/143739) debe seleccionarse como la correcta. – kzh