La spécification HTML autorise les points (.) Dans un identifiant:
<img id="some.id" />
Cependant, l'utilisation d'une règle de sélection d'ID CSS ne correspondra pas correctement:
#some.id { color: #f00; }
La spécification CSS pour les sélecteurs d'ID ne mentionne pas ce cas. Je suppose donc qu'il utilise la combinaison d'un nom de balise et d' un sélecteur de classe ? Par exemple, une règle CSS de a.className
s'appliquerait à toutes les balises d'ancrage ( <a>
) avec un nom de classe de className
, comme <a class="className"></a>
.
Est-il possible d'avoir une règle de fichier CSS externe qui référence un élément HTML par son identifiant qui contient un point?
Je ne m'attends pas car la spécification CSS spécifie qu'un « identifiant » CSS n'inclut pas le point comme caractère valide. Est-ce donc un décalage fondamental entre les spécifications HTML et CSS? Est-ce que ma seule alternative est d'utiliser un autre type de sélection CSS? Quelqu'un de plus intelligent que moi peut-il le confirmer ou le nier?
(Je supprimerais le point de l'attribut HTML id pour simplifier les choses, mais c'est un identifiant généré par le système, donc je n'ai pas la possibilité de le changer dans ce cas.)
la source
#some.id
la combinaison de l'ID et du sélecteur de classe.Réponses:
Classique. Juste après avoir fouillé toutes les spécifications en écrivant la question, je l'ai lu un peu plus et j'ai trouvé qu'il y avait un caractère d'échappement. Je n'en ai jamais eu besoin auparavant, mais la spécification CSS autorise l' échappement de la barre oblique inverse (\) comme la plupart des langages. Qu'est-ce que tu sais?
Donc, dans mon exemple, la règle suivante correspondrait:
#some\.id { color: #f00; }
la source
#some\\.id
pour échapper le caractère spécial. La première barre oblique inverse est consommée par Stylus, laissant la barre oblique inverse restante dans le CSS compilé, ce qui permet d'obtenir le résultat souhaité décrit dans cette réponse.Vous pouvez également utiliser img [id = some.id]]
Plus d'infos ici: http://www.w3.org/TR/selectors/#attribute-selectors
la source
.
, comme\.
si.