Ashura: Attribut-Selektoren

Beitrag lesen

Hallo Angy.

nu habt Ihr mich nach 3 Jahren wieder zurück - sorry auch :) Und direkt eine dumme Frage:

Willkommen zurück.

Abgesehen davon, dass man mit Attribut-Selektoren vermutlich noch zu viele Besucher ausschließen würde, da der Monopol-"Browser" die ja nicht versteht, frage ich mich, ob das überhaupt sehr geistreich ist, diese Selektoren einzusetzen:

Ja, es gibt durchaus sinnvolle Einsatzzwecke.

Einerseits zieht man Styles in eine externe Datei und bietet evtl. sogar die Möglichkeit, jeden Tag ein anderes Design auszuwählen,

Bis hierher ist soweit alles klar.

und andererseits gibt man Elementen AFAIK im HTML-Stream ein Attribut, um ihnen in einem externen File oder im Head andere Attribute zu vergeben?

Aber hier sieht es schon schlechter aus. Wenn du Elementen neue Attribute geben willst, brauchst du eine (client- oder serverseitige) Skriptsprache.

Also was genau meinst du hiermit?

Wozu ist das gut? So etwa wie eine Untermenge einer Klasse, aber nicht ganz so individuell wie eine ID?

Nein, jedes Attribut hat--ebenso wie Elemente--seinen eigenen Verwendungszweck, was es von anderen (relativ) eindeutig unterscheidet.

So dienen src und href zu Referenzierung auf andere Resourcen, rel und rev geben Beziehungen von Dokumenten untereinander an, eine Klasse fasst inhaltlich ähnliche Elemente (zu Gruppen) zusammen und eine ID zeichnet ein Element eindeutig aus.

Es gibt also Abstufungen, aber bis hierher hat dies alles noch nichts (oder wenig) mit Layout zu tun.

Was ich auch nicht herausfinden konnte: Müssen die Attribute erlaubte Werte haben?

Die Attributwerte müssen auf HTML-Ebene der angegebenen DTD gegenüber gültig sein. CSS ist ziemlich egal, was auf HTML-Ebene erlaubt ist und was nicht.

Oder wäre es z.B. möglich, in HTML ein <p align="hugo"> zu codieren und dann einen Style p[align=hugo] {...} zuzuweisen?

Natürlich. Dass der Einsatz des align-Attributes bei Bestehen eines gleichwertigen CSS-Pendants überflüssig ist, muss aber sicher nicht erwähnt werden, oder?

Der Sinn hiervon wäre natürlich, den Attribut-Selektor einzusetzen, ohne tatsächlich einen Style im HTML-Stream vorzugeben.

Was meinst du mit HTML-Stream?

Falls in diesem Durcheinander die ursprüngliche Frage verlorengegangen sein sollte: Wozu sollte man Attribut-Selektoren einsetzen und nicht Klassen oder IDs?

Beispiele gefällig?

HTML:

<a href="mailto:info@example.org">Mail me</a>  
<a href="http://example.org">Example</a>

CSS:

a[href^=http]:before{content:"➨ ";}  
a[href^=mailto]:before{content:"✉ ";}

HTML:
<p>In diesem Text behandeln wir das Thema <span lang="en" title="Content Management System">CMS</span></p>

CSS:

span[lang=en]{background:#900;color:#ddd;}  
span[lang=en]:after{content:"("attr(title)")";}

HTML:
<a href="http://example.com target="_blank">Vorsicht, neues Fenster / neuer Tab</a>

CSS:
a[target]{cursor:ne-resize;}

...
(Es gibt sicher noch mehr sinnvolle Beispiele; dies sind erst einmal die, die mir als erstes eingefallen sind.)

Und warum hier extra Klassen setzen? Bestehende Attribute genügen oft bereits zur Selektion, doch leider wird uns diese Möglichkeit bekanntlich verwehrt...

Grüße aus dem schönen Angermund, das leider keine Sau kennt

Mach dir nichts draus.

Einen schönen Mittwoch noch.

Gruß, Ashura

--
Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]