Sudr: CSS-Stylesheet einbinden aber IE Browser ausschließen?

Hallo an alle Leser,

es sollen alle Internet Explorer Browser "eine bestimmte" CSS-Datei nicht laden. Mit style media und der @import-Regel in Verbindung mit all ist ja möglich.

Beispiel:

  
<style media="screen,projection" type="text/css">@import url(style/modern.css) all;</style>  

Meine Frage lautet nun, ist es möglich, dass man den Ausschluss der IEs irgendwie mit dem <link> -Tag hinbekommt?
Beispiel:

  
<link rel="stylesheet" type="text/css" href="style/modern.css" media="screen,projection">  

Auf CSS-Hacks möchte ich wegen der Übersichtlichkeit sowie der Validierung verzichten.

Danke für eure Antwort!

Viele Grüße

Sudr

  1. Auf CSS-Hacks möchte ich wegen der Übersichtlichkeit sowie der Validierung verzichten.

    Verwende valide Hacks - die gibt es für IE6, 7 und 8 und setzte auf Progressive Enhancement. Sloved.

    Deine anderen Vorschläge sind auch Hacks.

    1. Hallo suit,

      vielen Dank für den Tipp, ich werde es in zukünftigen Projekten berücksichtigen. Leider hilft mir Deine Empfehlung zurzeit nicht weiter. Könntest Du mir bitte eine Antwort bzw. ein Beispiel (falls es überhaupt möglich ist) auf meine Frage geben? Wäre nett von Dir!

      Viele Grüße

      Sudr

      1. @@Sudr:

        nuqneH

        Leider hilft mir Deine Empfehlung zurzeit nicht weiter.

        Bei welchem Problem?

        Könntest Du mir bitte eine Antwort bzw. ein Beispiel (falls es überhaupt möglich ist) auf meine Frage geben?

        Wenn du eine Antwort auf meine Frage gibst.

        Qapla'

        --
        „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)
        1. Hallo Gunnar Bittersmann,

          Entschuldigung dass ich mich jetzt erst melde!

          Was genau willst du erreichen?

          Ich versuche eine Website mittels CSS so zu gestalten, dass diese auch noch mit dem Netscape 4 Browser einigermaßen ansehnlich ist. Auch wenn jetzt viele Aufschreien und sagen, dass man alte Browser vernachlässigen kann, ist es mir persönlich wichtig das bestimmte User die noch ältere Computer-Systeme nutzen (z. B. wegen Behinderung / Screenreader / Mund und Augensteuerungssysteme etc. pp.) eine vernünftige Seite angezeigt bekommen, und zwar ohne das die vorhandenen Systeme für sehr viel Geld umgerüstet bzw. ausgetauscht werden müssen.

          Um dies zu bewerkstelligen verwende ich momentan lieber mehrere CSS-Stylesheets (basis.css, modern.css und sparsam eingesetzte Conditional Comments für den IE) anstatt alles in einer einzigen CSS-Datei unterzubringen. Zum einen bin ich mir darüber im Klaren das alles in einer CSS-Datei nicht so Serverlastig ist als eine Aufteilung, weil nur ein Request abgefeuert wird. Demnach ist eine CSS-Datei - die für alle Browser gilt - als gewaltiger Pluspunkt anzuerkennen. Zum anderen sehe ich aber auch, dass in Zukunft ein anderer Browser oder eine neue Browserversion auf ein reines CSS-Hack fälschlicherweise reagieren kann. Es muss nicht aber die Möglichkeit besteht. Abgesehen davon gefällt mir die Wartbarkeit gegenüber reinen CSS-Hacks besser.

          Was soll das? Ich sehe keinen Sinn darin, IE 10 anders zu behandeln als Nicht-IEs.
          Nicht mal IE 9.

          Zuerst einmal möchte ich meine Fragestellung berichtigen da ich mich nicht richtig ausgedrückt habe. Es hätte heißen müssen:

          Es sollen alle Internet Explorer Browser bis Version 9 "eine bestimmte" CSS-Datei nicht laden. Mit style media und der @import-Regel in Verbindung mit all ist dies ja möglich.

          Ich entschuldige mich für dieses Versehen bei allen Lesern!

          Wenn Du keinen Sinn darin siehst, IE 9 anders zu behandeln als Nicht-IEs, dann formatierst Du wahrscheinlich nur für moderne Browser. Ich aber versuche alte Browser nicht auszuschließen aus Gründen der Barrierefreiheit wie oben schon angemerkt. Den IE 10 mit Conditional Comments zu behandeln würde sowieso nicht mehr funktionieren, da er diese Kontrollstruktur nicht mehr unterstützt. Dieser Browser würde dann unausweichlich auf die modern.css zugreifen, auch wenn mit all explizit alle IEs ausgeschlossen wurden. Man kann nur hoffen, dass sich Microsoft endlich mal an die Standards hält.

          Zitat von Sudr: Leider hilft mir Deine Empfehlung zurzeit nicht weiter.

          Zitat von Gunnar Bittersmann: Bei welchem Problem?

          Antwort: Es gibt kein Problem. Ich wollte lediglich nur wissen ob man den Ausschluss der älteren IEs irgendwie mit dem <link> -Tag hinbekommen kann anstatt mit dem <style>-Tag.

          Viele Grüße

          Sudr

          1. @@Sudr:

            nuqneH

            Ich versuche eine Website mittels CSS so zu gestalten, dass diese auch noch mit dem Netscape 4 Browser einigermaßen ansehnlich ist.

            Das ist nicht dein Ernst, oder? Und warum willst du Mosaic nicht mehr unterstützen?

            Der älteste Broswer, der vielleicht noch wert ist beachtet zu werden, ist IE 6. Aber auch nur vielleicht. Vielleicht nicht einmal mehr IE 7.

            Auch wenn jetzt viele Aufschreien und sagen, dass man alte Browser vernachlässigen kann, ist es mir persönlich wichtig das bestimmte User die noch ältere Computer-Systeme nutzen (z. B. wegen Behinderung / Screenreader / Mund und Augensteuerungssysteme etc. pp.) eine vernünftige Seite angezeigt bekommen,

            Nutzer mit solch veralteten Browsern haben ganz andere Probleme als fehlerhafte Darstellungen: ungestopfte Sicherheitslöcher. Nutzer veralteter Browser sind eine Gefahr für sich und andere. Die Verwendung veralteter Browser sollte nicht noch durch fehlerfreie Darstellung gefördert werden.

            Screenreader intertessieren sich für Inhalte, d.h. für Markup. Mit ARIA-Attributen kann man ihnen Gutes tun, CSS ist ihnen egal (bis auf sowas wie display: none). Sie lesen, WAS auf dem Bildschirm ist, nicht WIE es auf dem Bildschirm ist. Darstellungsfehler sind ihnen völlig schnuppe.

            Demnach ist eine CSS-Datei - die für alle Browser gilt - als gewaltiger Pluspunkt anzuerkennen.

            Ja. Und nicht nur deshalb.

            Zum anderen sehe ich aber auch, dass in Zukunft ein anderer Browser oder eine neue Browserversion auf ein reines CSS-Hack fälschlicherweise reagieren kann. Es muss nicht aber die Möglichkeit besteht.

            Nein, nicht wirklich.

            Abgesehen davon gefällt mir die Wartbarkeit gegenüber reinen CSS-Hacks besser.

            Ein Stylesheet für alle Browser ist deutlich besser wartbar als getrennte Sttylesheets für verschiedene Browser (es sei denn, diese werden mit CSS-Präprozessor aus einundderselben Quelle generiert).

            Es sollen alle Internet Explorer Browser bis Version 9 "eine bestimmte" CSS-Datei nicht laden. Mit style media und der @import-Regel in Verbindung mit all ist dies ja möglich.

            Das sollte man aus Performanzgründen nicht tun. Verwende zum Einbinden von Stylesheets das link-Element, nichts anderes.

            Wenn Du keinen Sinn darin siehst, IE 9 anders zu behandeln als Nicht-IEs, dann formatierst Du wahrscheinlich nur für moderne Browser.

            IE 9 _ist_ ein (halbwegs) moderner Browser. Er kann eine ganze Menge CSS 3, eine Sonderbehandlung hat er nur äußerst selten nötig.

            Den IE 10 mit Conditional Comments zu behandeln würde sowieso nicht mehr funktionieren, da er diese Kontrollstruktur nicht mehr unterstützt. Dieser Browser würde dann unausweichlich auf die modern.css zugreifen,

            Und das ist auch gut so. IE 10 dürfte zu den modernsten Browsern zählen.

            auch wenn mit all explizit alle IEs ausgeschlossen wurden. Man kann nur hoffen, dass sich Microsoft endlich mal an die Standards hält.

            Das tun IEs spätestens seit Version 8.

            Ich wollte lediglich nur wissen ob man den Ausschluss der älteren IEs irgendwie mit dem <link> -Tag hinbekommen kann anstatt mit dem <style>-Tag.

            Mit conditional comments. Aber das weißt du ja bereits.

            Qapla'

            --
            „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)
            1. Zum anderen sehe ich aber auch, dass in Zukunft ein anderer Browser oder eine neue Browserversion auf ein reines CSS-Hack fälschlicherweise reagieren kann. Es muss nicht aber die Möglichkeit besteht.

              Nein, nicht wirklich.

              Ich bin immer noch der Meinung, dass es nicht ausgeschlossen werden kann - auch wenn die Wahrscheinlichkeit gegen Null tendiert :)

              Abgesehen davon gefällt mir die Wartbarkeit gegenüber reinen CSS-Hacks besser.

              Ein Stylesheet für alle Browser ist deutlich besser wartbar als getrennte Sttylesheets für verschiedene Browser

              Das kommt auf den Anwendungsfall an - derzeit wo wirklich nur noch den IE7 und den IE8 (mit ganz weigen) Extrawürsten versorgen muss, sind Hacks im CSS-File vorzuziehen.

              Das sollte man aus Performanzgründen nicht tun. Verwende zum Einbinden von Stylesheets das link-Element, nichts anderes.

              Und am besten nur eines davon - wenn man schon mehrere Stylesheets hat, kann man die Serverseitig in eine Ressource zusammehängen.

              IE 9 _ist_ ein (halbwegs) moderner Browser. Er kann eine ganze Menge CSS 3, eine Sonderbehandlung hat er nur äußerst selten nötig.

              Dem kann man uneingeschränkt zustimmen - selbst für den IE8 braucht es kaum Sonderlösungen (sofern man jetzt nicht auf Biegen und Brechen runde Ecken will).

              Und das ist auch gut so. IE 10 dürfte zu den modernsten Browsern zählen.

              Man darf sogar sagen, IE10 hat Safari 5 überholt und ist den anderen 3en dicht auf den Fersen - er IE holt mit sehr großen Schritten auf.

              auch wenn mit all explizit alle IEs ausgeschlossen wurden. Man kann nur hoffen, dass sich Microsoft endlich mal an die Standards hält.

              Das tun IEs spätestens seit Version 8.

              Im Gegensatz zu Google und Apple die die Standards _sehr_ strapazieren indem sie Webkit mit zahllosen eigenlösungen Zuscheissen (pardon).

              Webkit ist der neue IE6 - denn die proprietären Erweiterungen mit Vendor-Präfixen sind um nichts besser als Filter.

              1. Hallo suit,

                auch für Deine Äußerungen ein dickes Dankeschön!

                Viele Grüße

                Sudr

            2. Hallo Gunnar Bittersmann,

              vielen Dank für Deine Stellungnahme sowie für die Beantwortung meiner Frage!

              Freundliche Grüße

              Sudr

  2. @@Sudr:

    nuqneH

    es sollen alle Internet Explorer Browser "eine bestimmte" CSS-Datei nicht laden.

    Was soll das? Ich sehe keinen Sinn darin, IE 10 anders zu behandeln als Nicht-IEs. Nicht mal IE 9.

    Was genau willst du erreichen?

    Qapla'

    --
    „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)