Webjoggel: Wert in Attributselektor ohne "..."?

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

  1. 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

    --
    Rosen sind rot.
    1. Ok, vielen Dank! lg

  2. @@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 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory

    1. Ich verwende den Begriff hier mal, obwohl es keine richtigen Anführungszeichen sind. ↩︎

    1. @@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 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    2. Vielen Dank! lg