IE: ABBR-kadabra

Jak v IE nastylovat tag ABBR bez použití JavaScriptu?
Zajímavé řešení jsem nalezl na stránkách Deana Edwardse person. Přišel (už před třemi lety!) s řešením, na které jsem, bůhvíproč, zatím na českých webech nenarazil - je bez JS, bez náhrady tagem „acronym“ a bez obalových SPANů. Podívejte se sami - zde je ukázka external.

Vysvětlení je ve zdrojovém kódu ukázky external. Celý trik spočívá v explicitním určení jmenného prostoru „html“ pro značku „abbr“, takto:

This is an <html:abbr title=“abbreviation“>abbr</html:abbr>

Tím donutí Explorer, aby si značky „všiml“ a vytvořil pro ni odpovídající DOM Node. Pak s ní lze pracovat jako s jakýmkoli jiným DOM uzlem.

Dokument začíná určením namespace: <html xmlns:html=“http://www.w3.org/1999/xhtml“> a ABBR je ostylován následujícím zápisem:

html\:abbr, abbr {
background: yellow;
border: none;
cursor: help;
}

Nejsem (X)HTML odborník, tak prosím ty, kteří jimi jsou: Je v něčem problém?

Problém se objevil u Opery 9.1, která nehodlá zobrazit obsah atributu TITLE (styl je jinak OK). Škoda.


zpetna kompatibilita

Dean je genius 8-) Pro XHTML prohlizece by to nemel byt problem. Problem by mohl nastat u ciste HTML-prohlizecu neznajicich XHTML (a tedy ani jmenne prostory). Takovy prohlizec by povazoval /html:abbr/ za neznamou znacku, jeji textovy obsah sice zobrazil, ale nenastyloval a nepouzil title.

Je to v podstane poruseni dnesniho konsensu „pisme XHML tak, aby to bylo zaroven XML a zaroven HTML“. Ale chapu, ze v tom nekdo nemusi videt problem.


Volby prohlížení komentářů

Vyberte si, jak chcete zobrazovat komentáře a klikněte na "Uložit změny".
Syndikovat obsah