Option value Spezifikation ?
hawkmaster
- css
Hallo zusammen,
Gibt es eigentlich beim "option value" einer Select Box Einschränkungen oder Spezifikationen hinsichtlich der Schreibweise?
Wären Werte wie Dateinamen (z.b. de.gif) erlaubt?
<select>
<option value="ie.gif">Irland</option>
<option value="de.gif>Deutschland</option>
</select>
vielen Dank und viele Grüße
hawk
Wären Werte wie Dateinamen (z.b. de.gif) erlaubt?
ja
Behandle den Inhalt HTML-gerecht
mfg Beat
Hallo Beat,
ja
Behandle den Inhalt HTML-gerecht
Danke für deine Hilfe.
Mir geht es speziell um dieses Self Beispiel.
http://aktuell.de.selfhtml.org/artikel/css/optionbilder/
Wenn ich die Option values mit de.gif oder ie.gif schreibe und die CSS dann:
<style type="text/css">
<!--
option[value=de.gif]:before { content:url("de.gif"); }
option[value=ie.gif]:before { content:url("ie.gif"); }
-->
</style>
dann geht es nicht mehr. Daher meine Frage.
vielen Dank und viele Grüße
hawk
Moin!
Mir geht es speziell um dieses Self Beispiel.
http://aktuell.de.selfhtml.org/artikel/css/optionbilder/Wenn ich die Option values mit de.gif oder ie.gif schreibe und die CSS dann:
<style type="text/css">
<!--option[value=de.gif]:before { content:url("de.gif"); }
option[value=ie.gif]:before { content:url("ie.gif"); }-->
</style>
>
> dann geht es nicht mehr. Daher meine Frage.
Punkte in CSS stellen ein Sonderzeichen dar, das entsprechend escaped werden muss. Denn der Punkt selbst ist ja Bestandteil des Selektors für Klassen. Die Browser werden deinen Attribut-Selektor vermutlich mißverstehen und deshalb ignorieren.
Du hast also kein Problem mit dem Punkt im HTML-Attribut "value", sondern mit dessen korrekter Darstellung im CSS-Selektor. Im Zweifel würde ich diesen Selektor vermeiden, das wäre der einfachste Weg.
- Sven Rautenberg
Hallo Sven,
vielen Dank für deine gute Erklärung.
Ja so hatte ich es mir auch zusammengereimt. Ich vermutete auch das es an dem Punkt liegt, der ja ein Klassen Selektor ist.
Ich habe bei meinem Script nun einfach die Dateiendung weggelassen und baue sie nachher zur Anzeige der Grafik wieder zusammen.
vielen Dank nochmals
Gruss
hawk
@@Sven Rautenberg:
nuqneH
Punkte in CSS stellen ein Sonderzeichen dar, das entsprechend escaped werden muss.
Nein. Die IMHO zu bevorzugende Variante ist, den String in Anführungszeichen zu setzen. Dann muss '.' nicht escapet werden:
option[value="de.gif"]:before { content: url(de.gif) }
(Bei 'url()' sind keine Anführungszeichen notwendig.)
In der Spec [CSS21 §5.8] werden die Schreibweisen mit und ohne Anführungszeichen verwendet, leider ohne jeglichen Hinweis darauf, in welchen Fällen sie notwendig sind. Und nicht, dass es in [CSS3-SELECTORS §6.3] besser wäre.
Qapla'
Hi,
In der Spec [CSS21 §5.8] werden die Schreibweisen mit und ohne Anführungszeichen verwendet, leider ohne jeglichen Hinweis darauf, in welchen Fällen sie notwendig sind.
Steht schon da, direkt nach der Auflistung der 4 Varianten:
Attribute values must be identifiers or strings.
Die Anführungszeichen können weggelassen werden, wenn die Voraussetzungen für identifier gegeben sind. Erlaubt sind sie immer (weil's dann als String betrachtet wird).
Und nicht, dass es in [[> CSS3-SELECTORS §6.3 <]] besser wäre.
Warum auch, ist ja eindeutig genug in CSS 2.1.
cu,
Andreas
@@MudGuard:
nuqneH
Attribute values must be identifiers or strings.
Definition of identifier
Definition of stringDie Anführungszeichen können weggelassen werden, wenn die Voraussetzungen für identifier gegeben sind. Erlaubt sind sie immer (weil's dann als String betrachtet wird).
Ah, danke.
option[value=de.gif]:before
funktioniert also nicht deshalb nicht, weil das nach dem '.' Stehende als Klassenbezeichner gewertet werden würde (sollte mich auch wundern, wenn der '.' innerhalb von [] steht); sondern deshalb nicht, weil de.gif weder Identifier noch String ist.
Qapla'