Je viens de voir ça : *|*:link
avec Firebug. Il semble qu'il s'agisse d'un style par défaut que Firefox ajoute, mais qu'est-ce que cela signifie ? *|*
C'est-à-dire ?
Réponses
Trop de publicités?Cela signifie "tous les éléments dans tous les espaces de noms qui sont :link
."
En savoir plus sur les sélecteurs universels et les espaces de noms.
*|*
est un sélecteur universel qualifié d'espace de noms . Le premier *
désigne tout espace de noms (y compris l'espace de noms par défaut et l'absence d'espace de noms), et le deuxième élément de la formule *
désigne tout type d'élément.
Comme mentionné, le sélecteur *|*:link
représente tout élément dans tout espace de nom qui est un hyperlien non visité ( :link
). Pour être clair, le *|
Le préfixe désigne certains éléments dans n'importe quel espace de nom, notamment :
- Éléments dans l'espace de noms par défaut (par exemple, XHTML)
- Éléments dans tout autre espace de nom (par exemple, XUL dans Firefox)
- Éléments qui ne sont pas dans un espace de nom
CSS dispose d'un module dédié aux déclarations d'espaces de noms.
Le type de document détermine le type d'éléments qui doivent être désignés comme des hyperliens :
-
En HTML et XHTML, c'est toujours un
a
avec un élémenthref
attribut. -
Dans XUL, je crois que c'est un
label.text-link
avec un élémenthref
attribut.
Notez que les espaces de noms CSS ne sont utiles que lorsque vous utilisez CSS pour styliser des documents XML, ou d'autres types de documents qui définissent les espaces de noms de manière similaire. Cela inclut les pages XHTML avec des espaces de noms XML personnalisés. Dans les documents HTML ordinaires, il n'est généralement pas nécessaire d'utiliser les préfixes d'espace de noms dans les sélecteurs.
Cela dit, les navigateurs déclarent un espace de noms par défaut dans leurs feuilles de style d'agent utilisateur qui correspond à XHTML pour HTML/XHTML de toute façon, pour permettre l'interopérabilité avec d'autres langages basés sur XML. Dans le cas de Firefox, cela permet évidemment de travailler à la fois avec XHTML et 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);
Étant donné que les éléments (X)HTML se trouvent dans l'espace de noms par défaut, les sélecteurs pour la correspondance avec les éléments juste ces éléments n'ont pas besoin d'être préfixés par un espace de nom. C'est la raison technique pour laquelle, comme je l'ai mentionné ci-dessus, il n'est pas nécessaire d'utiliser les préfixes d'espace de noms dans les sélecteurs.
Notez également que si vous souhaitez cibler tout type d'élément avec un préfixe d'espace de nom, l'option *
sur le côté droit doit être là, donc quelque chose comme *|:link
serait invalide. Voir cette réponse pour les détails.
7 votes
Les espaces de noms CSS. Je ne peux pas en dire plus à ce sujet. ajaxian.com/archives/