Browserweichen für alle Browser außer IE

  • Hallo, ich hab auch ebend mal einen kleine Frage.
    Mit Browserweichen kann man ja nun prima verschiedene Versionen des Internetexplorer einzeln ansteuern, was die CSS-Einbindung betrifft. Und zwar mit folgendem Code:

    Code
    <!--[if lt IE 7]>
        <style type="text/css">@import url(ie5-6.css);</style>
      <![endif]-->


    Meine Frage:
    Gibt es dafür auch irgendeine Schreibweise, die alle Browser einbezieht, die kein IE sind?
    Mir ist noch nicht ganz klar geworden wann und wieso aber manchmal wird auch die CSS-Datei vom IE benutzt, die eigentlich für Opera, FF, etc. gedacht war und folgendermaßen in der Datei deklariert ist:

    Code
    <link rel="stylesheet" type="text/css" href="design.css">


    Nun bin ich schon soweit gekommen, dass ich letztere Deklaration im Quellcode vor die Sache mit den IFs stellen muss, damit der IE nicht auf die design.css zugreift aber scheinbar klappt das nicht immer so richtig.
    Ist halt eine ziemlich verzwickte Sache und nicht ganz leicht zu durchschauen.

    Deshalb hätte ich gerne so eine schön saubere Lösung wie

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

    Aber das klappt nun mal nicht.
    Anstelle des not hab ich auch schon ein ! probiert, aber das hat den gleichen Effekt.

    Aus SelfHTML (http://de.selfhtml.org/css/layouts/browserweichen.htm) geht nicht direkt etwas hervor, das mein Problem beseitigen könnte und ich hoffe nun einfach auf die Unvollständigkeit von SelfHTML und darauf, dass jemand von euch da draußen eine Antwort kennt...

    Gruß, Foster.

  • Also einen Code vom Typ wie du ihn vorgestellt hast, gibt es definitiv NICHT, da es sich dabei um "conditional comments" handelt, eine Erfindung aus der Microsoft-Schmiede.

    Und dass der IE auf deine design.css zugreift ist ja vollkommen logisch, da es sich um ein normal verlinktes Stylesheet handelt. Allerdings sind die Conditional Comments ja genau für den Zweck erschaffen worden, IE-Kritische Anweisungen wieder zu überschreiben, also wo liegt das Problem?

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • In vielen Fällen benötigt man m.E. solche Browserweichen überhaupt nicht.
    Wenn z.B. der IE6 das Boxmodell nicht richtig darstellt, dann fehlt dem html-Dokument oft lediglich ein qualifizierter Doctype und schon ist das Problem behoben.
    Deshalb eigene CSS-Dateien anzufertigen ist unnötige Arbeit.

    Auch anderweitige Bugs des IE lassen sich oft mit kleinen Hacks beheben.

    Wenn du einen Div #content hast, der im IE trotz richtigem Doctype aus welchen Gründen auch immer anderweitige Angaben braucht, dann schreibe in die CSS-Datei
    zusätzlich

    Zitat

    *html #content {Styleangaben IE}


    Das kann dann nur der IE6 lesen.

    Auf IE 5 nehme ich mittlerweile keine Rücksicht mehr, da er mit rd. 3 % aller Benutzer wohl ein Auslaufmodell ist.

  • Für den IE7 funktioniert zum Beispiel dieser Hack ganz gut:

    Zitat

    html* #content {Style für IE 7 }


    Mit ein wenig Kenntnis der problematischsten CSS-Attribute und mit viel Geduld lässt sich jedes kleinere Projekt auch vollkommen ohne Hacks erstellen. Für meine Website beispielsweise wurde kein einziger Hack verwendet, und die Darstellung im IE und FF ist nahezu identisch. Und ich sage "nahezu", weil man eine 100%ige Deckungsgleichheit niemals hinbekommen wird ;)

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • Meine Problemzone ist ein Dropdownmenü von http://www.css-play.co.uk
    IE 6 und IE 7 stellen dabei das Submenü in unterschiedlichem Abstand zum Menü dar, weshalb ich die Browserweiche eingesetzt hab.
    IE 5 beachte ich eigentlich auch nicht, da ich garnicht weiß, wie es mit dem aussieht.

    Anderes Problem war der unterschiedliche vertikale Abstand, der zwischen 2 Bildern angezeigt wird, wenn eine Leerzeile dazwischen ist.

    Für IE6 und IE7 hab ich beides jetzt glaube ich soweit ganz gut in den Griff bekommen.
    Alle anderen Browser hab ich nun beschlossen auszuschließen, da ich das Projekt nur auf CD veröffentlichen werde und die ganze Sache per autorun.inf standartmäßig und ganz automatisch mit dem IE gestartet wird.
    Wer dann unbedingt das ganze in FF oder Opera öffnen muss, hat selbst schuld (und ich denke das werden die wenigsten tun).


    Werde mir aber auch den Rat, Hacks zu umgehen, zu Herzen nehmen.
    Danke :)