j.wacker: Browserweiche die verschiedenen css lädt

hallo Leute,
ich will je nach browser verschiedenen CSS Dateien einbinden. was ich bisher bei browserweichen gefunden habe:
<script language="JavaScript">
<!--
if (navigator.appName.indexOf("Netscape") != -1)
{
 window.location = "netscape_browser.html";
}
else if (navigator.appName.indexOf("Explorer") != -1)
{
 window.location = "microsoft_browser.html";
}
else
{
 window.location = "anderer_browser.html";
}
//-->
</script>
lädt ja verschiedene html. dateien ich will aber eine html.datei und es sollen verschiedene css ( z.b netscape.css microsoft.css opera.css) geladen werden.Das mit den verschiedenen html dateien geht leider nicht weil cms dranhängt. Leider bin ich javascript Anfänger.
Falls mir jemand helfen kann tausend dank.
jürgen

  1. Hallo Jürgen,

    ich will je nach browser verschiedenen CSS Dateien einbinden.

    in aller Regel reichen 2 Styleshhets

    eines für richtige Browser, und eines für den IE. Am einfachsten wir das CSS für den IE mit conditional Comments eingebunden. Dann bist du auch nicht von javascript abhängig.

    Das sieht dann so aus:

    <style type="text/css"> @import url(std.css);</style>

    <!--[if IE]>
      <style type="text/css"> @import url(ie.css);</style>
    <![endif]-->

    HTH

    Jochen

  2. Hallo Jürgen;

    ganz einfach:

    du schreibst im Headbereich Folgendes:

    <script language="JavaScript">
    <!--
    if(browserX) {
      document.writeln('<link rel="stylesheet" href="styleX.css">');
    } else {
      document.writeln('<link rel="stylesheet" href="styleY.css">');
    }

    //-->
    </script>

    Wenn du mehr als zwei Browser unterscheiden willst, kannst du mehrere Else-Unterzweige einbauen oder mit switch-case arbeiten. Die Browser erkennst du am besten an ihren unterschiedlichen typischen Objekten. Den MSIE also z.B. an "document.all" (was du dann statt "browserX" schreiben könntest). Darauf spricht aber auch Opera an, den du dann wiederum mit "window.opera" ausschließen kannst. Als Abhandlung zum Thema Browserweichen greife ich immer auf die Printform im JavaScript-Workshop von Addison-Wesley zurück, bestimmt findet man im Netz aber weitere Infos. Auf dieser Domain sieht es dazu aber nicht gut aus, wie ich nach den ersten Suchanfragen leider habe feststellen müssen. Vielleicht erbarmt sich ja mal jemand und schreibt dazu einen Feature-Artikel oder "Tipps und Tricks"

    Gruß Gernot

  3. ich will je nach browser verschiedenen CSS Dateien einbinden. was ich bisher bei browserweichen gefunden habe:

    Sowas ist in aller Regel überflüssige Arbeit aufgrund von falschen CSS. Beim IE 5 und größer musst du die Probleme mit dem Boxmodell Bug beachten die sich aber - zumindest bei nicht sehr kompliziertem CSS - umschiffen oder soagr lösen lassen. Und Netcape 4. läßt du am besten aussen vor mit media="all"

    Struppi.

  4. hallo Leute,

    Hi Jürgen!

    ich will je nach browser verschiedenen CSS Dateien einbinden. was ich bisher bei browserweichen gefunden habe

    [...]

    Falls mir jemand helfen kann tausend dank.

    Schau Dir mal folgendes an:

    http://www.parterremedia.de/csswork/css-box-modell/boxmodell-03.html

    jürgen

    Gruß
    Maresa

  5. Hallo,

    ich will je nach browser verschiedenen CSS Dateien einbinden.

    zur Browserweiche per JavaScript findest du hier Informationen http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html wie du Browser verlässlicher als per Useragent unterscheiden kannst.

    Allerdings würde ich in deinem Fall versuchen auf JavaScript zu verzichten und CSS-Weichen zu verwenden, z.B.:
    @import url(IE.css);
    @import url(nIE.css) screen;

    Noch ein Beispiel zur Einbindung externer Styledateien: http://www.lipfert-malik.de/webdesign/tutorial/bsp/NBdemo.html, allerdings können CSS-Weichen innerhalb einer einzigen CSS-Datei übersichtlicher sein, zumal oft nur wenige Unterscheidungen nötig sind.

    Grüsse

    Cyx23