Thomas Luethi: Alternate Stylesheets / Eigener Style für alte Browser

Beitrag lesen

Hallo,

<link rel="stylesheet" type="text/css" href="neu.css" title="Main" media="screen, projection">
<link rel="stylesheet" type="text/css" href="alt.css" title="Netscape">

Klappt auch wunderbar, aber man muss leider höllisch mit den Styles aufpassen. Denn im IE überschreiben die Styles aus "Netscape" die Styles aus "Main".

Das ist - soweit ich die Spec. verstehe - falsch.
http://www.w3.org/TR/html401/present/styles.html#specifying-external
  "If two or more LINK elements specify a preferred style sheet,
   the first one takes precedence."

Preferred ist ein Stylesheet bei <link rel="stylesheet" ...> _mit_ title-Attribut.

Vermutlich koenntest Du bereits durch eine Umstellung der Reihenfolge
sowie durch Weglassen des title-Attributs fuer neu.css erreichen,
dass die neueren Browser dieses staerker gewichten.

<link rel="stylesheet" type="text/css" href="alt.css" title="Netscape">
<link rel="stylesheet" type="text/css" href="neu.css" media="screen, projection">

Ich hatte vor ein paar Jahren mal ein paar Tests zu dem Thema gemacht.
(Damals hatte ich noch keinen MS IE 6.0, weiss also nicht, was fuer den gilt.)
Das Verhalten der Browser war damals nicht einheitlich und logisch.
Wenn das letzte von mehreren solchen LINK-Tags _kein_ Title-Attribut enthaelt,
dann wird das entsprechende Stylesheet auf jeden Fall beruecksichtigt.
Testseiten mit mehreren CSS:
http://www.tiptom.ch/tests/css_test/css_index.html
Zusammenfassung:
http://www.tiptom.ch/tests/css_test/css_intro.html

---

Ich selbst brauche auch am liebsten den Trick mit media="screen, projection",
um CSS vor Netscape 4 zu verstecken.

Ansonsten siehe:
http://w3development.de/css/hide_css_from_browsers/
http://centricle.com/ref/css/filters/
http://www.tiptom.ch/homepage/faq.html?q=nn4keincss

Am liebsten wäre mir eine Möglichkeit ohne Abfrage des "User Agents" und ohne JavaScript bzw. PHP.

Verstaendlich.
Allerdings kann Netscape 4.x sowieso nur CSS, wenn JavaScript
eingeschaltet ist.
Ein Extrawurst-Stylesheet nur fuer Netscape 4 koennte man so einbauen:
<script type="text/javascript>
 if (document.layers)
    { document.write("<link rel="stylesheet" href="netscape4.css" type="text/css">"); }
</script>

Vermutlich klappts auch so:

if (document.layers)
    { document.write("<link rel='stylesheet' href='netscape4.css type='text/css'>"); }

Gruesse,

Thomas

--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/