Wert in Attributselektor ohne "..."?
Webjoggel
- css
Die Beispiele hier https://wiki.selfhtml.org/wiki/CSS/Selektoren/Attributselektor/Wert sind etwas verwirrend. Bei mir jedenfalls hat es erst gefunzt, als ich den Wert in "..." gesetzt habe:
a[href="https://example.com"] {
display: none;
}
lg
Hallo Webjoggel,
Die Beispiele hier https://wiki.selfhtml.org/wiki/CSS/Selektoren/Attributselektor/Wert sind etwas verwirrend. Bei mir jedenfalls hat es erst gefunzt, als ich den Wert in "..." gesetzt habe:
a[href="https://example.com"] { display: none; }
Danke für deine Rückmeldung. Es sollte auch ohne Anführungszeichen funktionieren, bei b[foo=bar] tut es das auch. Offenbar wird jedes der Zeichen :
, /
, .
als Wortgrenze angesehen.
Daher: Es gehört zum guten Stil, Attribute in Anführungszeichen zu setzen.
Und es heißt im Wiki: Beginnt der im Selektor angegebene Wert mit einer Ziffer oder besteht aus anderen Zeichen als Buchstaben, Ziffern, Binde- und Unterstrich, so muss er innerhalb von einfachen oder doppelten Anführungszeichen notiert werden.
Bis demnächst
Matthias
Ok, vielen Dank! lg
@@Webjoggel
Die Beispiele hier https://wiki.selfhtml.org/wiki/CSS/Selektoren/Attributselektor/Wert sind etwas verwirrend. Bei mir jedenfalls hat es erst gefunzt, als ich den Wert in "..." gesetzt habe:
a[href="https://example.com"] { display: none; }
Mit Anführungszeichen[1] ist es ein string-token, ohne ein ident-token; siehe Token Railroad Diagrams.
In ident-token sind nicht alle Zeichen erlaubt.
geht: font-family: 'Calibri', sans-serif
(sans-serif
darf als Keyword nicht in Anführungszeichen stehen.)
geht auch: font-family: Calibri, sans-serif
geht auch: font-family: Fira Sans, Calibri, sans-serif
(trotz Leerzeichens in Fira Sans
)
Selectors Level 3, Attribute selectors: “Attribute values must be CSS identifiers or strings.”
identifier: “In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); they cannot start with a digit, two hyphens, or a hyphen followed by a digit…”
geht: a[href="https://example.com"]
geht nicht: a[href=https://example.com]
LLAP 🖖
Ich verwende den Begriff hier mal, obwohl es keine richtigen Anführungszeichen sind. ↩︎
@@Gunnar Bittersmann
geht:
a[href="https://example.com"]
geht nicht:
a[href=https://example.com]
BTW, geht auch: a[href=https\:\/\/example\.com]
(alle Zeichen, die im identifier nicht vorkommen dürfen, sind escapet)
Aber nicht, dass man das so machen sollte.
LLAP 🖖
Vielen Dank! lg