Rolf B: JS: Globale Variable ??

Beitrag lesen

Hallo Felix,

3. Warum ein i-Element?

Weil <i> für Icon steht. NICHT! Aber viele glauben das. Der Vorteil: man spart 6 Zeichen gegenüber <span>. Der Nachteil: der Inhalt wird typischerweise kursiv dargestellt (was man mit CSS entfernen kann), aber wenn man das <i> nur als Container nutzt, dem über eine Klasse ein Background-SVG verpasst wird, fällt es gar nicht auf.

Der Grund für diesen Irrglauben ist nicht zuletzt das Beispiel, das Facebook gibt. Und in der Spec steht:

The I element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, a ship name, or some other prose ...

Das klingt doch gut! Ein Icon ist eine alternative Darstellung für Text, es hebt sich vom normalen Text ab, also warum nicht <i> für Icon? Bei Stackoverflow hat tatsächlich jemand geschrieben, dass das i Element der Semantik eines Icons deutlich näher wäre als ein span Element und dass er es deshalb nutzen würde.

Aber wenn man die Spec bis zum Ende liest:

... whose typical typographic presentation is italicized.

und das ist ein Icon nicht. <i> enthält Text, und ist als italic, nicht als iconic zu verstehen. Und im vorliegenden Fall ist das Icon nicht mal eine alternative Darstellung, sondern Dekor - ein Lastwagen. Vermutlich soll er das Marquee ziehen.

Rolf

--
sumpsi - posui - clusi