Die HTML-Spezifikation erlaubt Punkte (.) In einer ID:
<img id="some.id" />
Die Verwendung einer CSS-ID-Auswahlregel stimmt jedoch nicht richtig überein:
#some.id { color: #f00; }
In der CSS-Spezifikation für ID-Selektoren wird dieser Fall nicht erwähnt. Ich gehe also davon aus, dass die Kombination aus Tag-Name und Klassenauswahl verwendet wird . Beispielsweise würde eine CSS-Regel von a.className
für alle Ankertags ( <a>
) mit dem Klassennamen className
like gelten <a class="className"></a>
.
Ist es möglich, eine externe CSS-Dateiregel zu haben, die auf ein HTML-Element anhand seiner ID verweist, die einen Punkt enthält?
Ich erwarte dies nicht, da die CSS-Spezifikation angibt, dass ein CSS- " Bezeichner " den Punkt nicht als gültiges Zeichen enthält. Ist dies also eine grundlegende Nichtübereinstimmung zwischen HTML- und CSS-Spezifikationen? Ist meine einzige Alternative, eine andere Art der CSS-Auswahl zu verwenden? Kann jemand schlauer als ich dies bestätigen oder leugnen?
(Ich würde den Punkt aus dem HTML-ID-Attribut entfernen, um die Dinge zu vereinfachen, aber es ist eine vom System generierte ID, sodass ich sie in diesem Fall nicht ändern kann.)
quelle
#some.id
ist die Kombination aus ID und Klassenauswahl verwenden.Antworten:
Klassisch. Kurz nachdem ich alle Spezifikationen durchgearbeitet hatte, in denen die Frage geschrieben war, las ich sie noch einmal durch und stellte fest, dass es einen Fluchtcharakter gibt. Ich habe es noch nie gebraucht, aber die CSS-Spezifikation erlaubt es, dass Backslash (\) wie in den meisten Sprachen maskiert wird. Was weißt du?
In meinem Beispiel würde also die folgende Regel übereinstimmen:
#some\.id { color: #f00; }
quelle
#some\\.id
um dem Sonderzeichen zu entkommen. Der erste Backslash wird von Stylus verwendet, wobei der verbleibende Backslash im kompilierten CSS verbleibt, wodurch das in dieser Antwort beschriebene gewünschte Ergebnis erzielt wird.Sie können auch img [id = some.id]] verwenden.
Weitere Infos hier: http://www.w3.org/TR/selectors/#attribute-selectors
quelle
.
, als\.
ob.