47 votes

Que signifie *|* en CSS ?

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 ?

7 votes

Les espaces de noms CSS. Je ne peux pas en dire plus à ce sujet. ajaxian.com/archives/

31voto

Frankie Points 12557

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.

14voto

BoltClock Points 249668

*|* 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ément href attribut.

  • Dans XUL, je crois que c'est un label.text-link avec un élément href 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X