sirve - ¿Qué significa*|*esto en CSS?
title css style (2)
Significa "todos los elementos en todos los espacios de nombres que son :link
".
Acabo de ver esto: *|*:link
con Firebug. Parece ser un estilo predeterminado que agrega Firefox, pero ¿qué significa *|*
?
*|*
es un selector universal calificado para espacios de nombres . El primero *
significa cualquier espacio de nombre (incluido el espacio de nombre predeterminado y la falta de un espacio de nombre), y el segundo *
significa cualquier tipo de elemento.
Como se mencionó, el selector *|*:link
representa cualquier elemento en cualquier espacio de nombres que sea un hipervínculo no visitado ( :link
). Para ser claro, el *|
prefijo significa ciertos elementos en cualquier espacio de nombres, incluyendo:
- Elementos en el espacio de nombres predeterminado (por ejemplo, XHTML)
- Elementos en cualquier otro espacio de nombre (por ejemplo, XUL en Firefox)
- Elementos que no están en un espacio de nombres
CSS tiene un módulo dedicado a las declaraciones del espacio de nombres.
El tipo de documento determina qué tipo de elementos se deben designar como hipervínculos:
En HTML y XHTML, este es siempre un elemento con un atributo
href
.En XUL, creo que este es un elemento
label.text-link
con un atributohref
.
Tenga en cuenta que los espacios de nombres CSS solo son útiles cuando se usa CSS para el estilo de documentos XML u otros tipos de documentos que definen espacios de nombres de manera similar. Esto incluye páginas XHTML con espacios de nombres XML personalizados. En documentos HTML normales, generalmente no es necesario usar prefijos de espacios de nombres en los selectores.
Dicho esto, los navegadores declaran un espacio de nombres predeterminado en sus hojas de estilo de agente de usuario que corresponde a XHTML para HTML / XHTML de todos modos, para permitir la interoperabilidad con otros lenguajes basados en XML. En el caso de Firefox, esto es obviamente para trabajar con XHTML y XUL:
@namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */
@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
Como los elementos (X) HTML viven en el espacio de nombres predeterminado, los selectores para hacer coincidir solo estos elementos no necesitan ser prefijados con el espacio de nombres. Esta es la razón técnica por la que, como mencioné anteriormente, no es necesario usar prefijos de espacio de nombres en los selectores.
Tenga en cuenta también que si desea apuntar a cualquier tipo de elemento con un prefijo de espacio de nombre, el *
en el lado derecho debe estar allí, por lo que algo como *|:link
no sería válido. Vea esta respuesta para más detalles.