Joachim: Browserweiche im CSS für ganze Blöcke

Hallo Zusammen

Gibt es eigentlich auch Browserweichen für ganze Blöcke in einer CSS-Datei?

So etwas wie:
@media print {
  selektor1 { eigenschaft:wert; }
  selektor2 { eigenschaft:wert; }
  selektor3 { eigenschaft:wert; }
}
aber eben nicht für verschiedene Ausgabemedien sondern für verschiedene Browser, vor allem für IE in verschiedenen Versionen.
Oder wie der Backslash-Hack für den IE/Mac...

Danke schonmal, Joachim

  1. Hallo Zusammen

    Gibt es eigentlich auch Browserweichen für ganze Blöcke in einer CSS-Datei?

    So etwas wie:
    @media print {
      selektor1 { eigenschaft:wert; }
      selektor2 { eigenschaft:wert; }
      selektor3 { eigenschaft:wert; }
    }
    aber eben nicht für verschiedene Ausgabemedien sondern für verschiedene Browser, vor allem für IE in verschiedenen Versionen.
    Oder wie der Backslash-Hack für den IE/Mac...

    Danke schonmal, Joachim

    conditional comments sind hierzu praktischer - hiermit kannst du im eigentlich dokument je nach browser zusätzliche stylehsheets laden

    wenn du allerdings eine große menge an "browserweichen" brauchst, hast du beim erstellen der seite schon einiges nicht beachtet - es gibt (fast) kein problem, dass sich nicht mit einem zusätzlichen markup-element im html-quelltext lösen lässt

    1. Es ist eher eine theoretische Frage, trotzdem möchte ich mich mal selber zitieren:

      Gibt es eigentlich auch Browserweichen für ganze Blöcke in einer CSS-Datei? »»

      Also IN einer CSS-Datei, und nicht im HTML-Code.

      conditional comments sind hierzu praktischer - hiermit kannst du im eigentlich dokument je nach browser zusätzliche stylehsheets laden

      Wie gesagt, nicht im HTML-Code...

      wenn du allerdings eine große menge an "browserweichen" brauchst, hast du beim erstellen der seite schon einiges nicht beachtet - es gibt (fast) kein problem, dass sich nicht mit einem zusätzlichen markup-element im html-quelltext lösen lässt

      Und auch hier wieder: nicht im HTML-Code.
      In manchen Fällen kann oder soll der Quellcode nicht verändert werden. Und extra Elemente einzubauen nur um einer Layoutvorstellung gerecht ist vielleicht etwas zu hoch gegriffen, maximal eine Element-ID oder Klasse.

      Die Frage stellte sich mir durch ein Posting von micho etwas weiter unten...

      1. Hi,

        Gibt es eigentlich auch Browserweichen für ganze Blöcke in einer CSS-Datei? »»
        Also IN einer CSS-Datei, und nicht im HTML-Code.

        nein. Aber wzu auch?

        conditional comments sind hierzu praktischer - hiermit kannst du im eigentlich dokument je nach browser zusätzliche stylehsheets laden

        Wie gesagt, nicht im HTML-Code...

        Browserweichen werden - wenn überhaupt - meist nur für bzw. gegen Fehldarstellungen in IEs benötigt. Was spricht also gegen ein über CC eingebundenes zusätzliches CSS?

        freundliche Grüße
        Ingo

        1. Hi,

          Gibt es eigentlich auch Browserweichen für ganze Blöcke in einer CSS-Datei? »»
          Also IN einer CSS-Datei, und nicht im HTML-Code.
          nein. Aber wzu auch?

          Doch ;). So kann man bspw. ganze Teile einer CSS-Datei vor dem Safari "verstecken" (siehe http://www.bongard.net/blog/2007/05/18/css-hacks_safari-icab-ie5_mac/).

          Ob so etwas sinnvoll oder ratsam ist, ist eine ganz andere Frage. Ich persönlich würde immer davon absehen, da man hier "Fehler" in den jeweiligen Browsern ausnutzt, und man eigentlich nie über alle "Nebenwirkungen" wirklich Bescheid weiss. Außerdem sind solche Dateien extrem schwer zu pflegen.

          conditional comments sind hierzu praktischer - hiermit kannst du im eigentlich dokument je nach browser zusätzliche stylehsheets laden

          Wie gesagt, nicht im HTML-Code...
          Browserweichen werden - wenn überhaupt - meist nur für bzw. gegen Fehldarstellungen in IEs benötigt. Was spricht also gegen ein über CC eingebundenes zusätzliches CSS?

          Sehe ich genauso. Wenn schon eine separate CSS nötig ist, dann eben über CCs _im_HTML-Markup.

          Allerdings fände ich es durchaus sehr gut & angebracht, wenn andere Browserhersteller das Konzept der CCs auch übernommen hätten. Dann hätte man sich diese ganze "CSS Hackerei" in den letzten Jahren sparen können!

          Gruß Gunther

          1. Wie gesagt, nicht im HTML-Code...
            Browserweichen werden - wenn überhaupt - meist nur für bzw. gegen Fehldarstellungen in IEs benötigt. Was spricht also gegen ein über CC eingebundenes zusätzliches CSS?

            Sehe ich genauso. Wenn schon eine separate CSS nötig ist, dann eben über CCs _im_HTML-Markup.

            »»

            CCs sind klar, aber - nochmal - die "Browserweiche" soll NICHT ins HTML!
            Wie gesagt ist dies eine theoretische Frage, obwohl ich vor einiger Zeit dies auch praktisch benötigt hätte: einige Seiten aus einem - katastrophalen Quellcode ausliefernden - Shopportal sollten optisch umgestaltet werden. Quirksmode, semantischer Unsinn und einiges mehr forderte viele IE-Hacks, und diese in einem seperaten Block in der CSS gruppieren zu können wäre sehr hilfreich gewesen. Änderungen am HTML-Code kam damals nicht in Frage...

            1. Hi!

              Wie gesagt, nicht im HTML-Code...
              Browserweichen werden - wenn überhaupt - meist nur für bzw. gegen Fehldarstellungen in IEs benötigt. Was spricht also gegen ein über CC eingebundenes zusätzliches CSS?

              Sehe ich genauso. Wenn schon eine separate CSS nötig ist, dann eben über CCs _im_HTML-Markup.
              »»

              CCs sind klar, aber - nochmal - die "Browserweiche" soll NICHT ins HTML!

              Aber nochmal: Das ist die einzige ordentliche Möglichkeit!

              Wie gesagt ist dies eine theoretische Frage, obwohl ich vor einiger Zeit dies auch praktisch benötigt hätte: einige Seiten aus einem - katastrophalen Quellcode ausliefernden - Shopportal sollten optisch umgestaltet werden. Quirksmode, semantischer Unsinn und einiges mehr forderte viele IE-Hacks, und diese in einem seperaten Block in der CSS gruppieren zu können wäre sehr hilfreich gewesen. Änderungen am HTML-Code kam damals nicht in Frage...

              Da ist imho der Fehler in deinem (Denk-)Ansatz. Da muss man nicht versuchen, die Anzeige im Browser durch irgendwelche unsinnigen Verrenkungen im Stylesheet zu retten, sondern da muss erstmal "ordentliches" Markup her!

              Die Verwendung von CSS kann nicht ein Ersatz für korrektes (X)HTML sein _und_kann auch kein "unsinniges" (X)HTML in irgendeiner Weise korrigieren.

              In deinem Fall hätte also erstmal das Shopportal auf Vordermann gebracht werden müssen! Bei der Gelegenheit hätte man es dann gleich so gestalten können, dass man ggf. gleich per CCs verschiedene Stylesheets eingebunden hätte, womit wir dann da wären, was dir hier von mehreren Leuten bereits geschrieben wurde.

              Gruß Gunther

              1. Da ist imho der Fehler in deinem (Denk-)Ansatz. Da muss man nicht versuchen, die Anzeige im Browser durch irgendwelche unsinnigen Verrenkungen im Stylesheet zu retten, sondern da muss erstmal "ordentliches" Markup her!

                Stimmt, wenn der Portalanbieter es aber nicht macht macht er es nicht.
                Das CSS war damals die einzige Möglichkeit irgendwie in das Erscheinungsbild einzugreifen!

                Die Verwendung von CSS kann nicht ein Ersatz für korrektes (X)HTML sein _und_kann auch kein "unsinniges" (X)HTML in irgendeiner Weise korrigieren.

                War auch nicht geplant. Die Vorgabe war die bestehenden Seiten (die mit dem "unsinnigen" Quellcode) wenigstens halbwegs ansehbar zu machen.

                In deinem Fall hätte also erstmal das Shopportal auf Vordermann gebracht werden müssen! Bei der Gelegenheit hätte man es dann gleich so gestalten können, dass man ggf. gleich per CCs verschiedene Stylesheets eingebunden hätte, womit wir dann da wären, was dir hier von mehreren Leuten bereits geschrieben wurde.

                Und was ich auch damals dem Portalbetreiber vorgeschlagen habe. Aber das war, aus welchen Gründen auch immer nicht möglich/gewollt/leistbar...
                Es blieb also nur die CSS übrig...
                Manchmal gibt es eben Dinge über die man sich nicht hinwegsetzen oder erzwingen kann.

                1. Hallo Joachim!

                  In deinem Fall hätte also erstmal das Shopportal auf Vordermann gebracht werden müssen! Bei der Gelegenheit hätte man es dann gleich so gestalten können, dass man ggf. gleich per CCs verschiedene Stylesheets eingebunden hätte, womit wir dann da wären, was dir hier von mehreren Leuten bereits geschrieben wurde.

                  Und was ich auch damals dem Portalbetreiber vorgeschlagen habe. Aber das war, aus welchen Gründen auch immer nicht möglich/gewollt/leistbar...
                  Es blieb also nur die CSS übrig...
                  Manchmal gibt es eben Dinge über die man sich nicht hinwegsetzen oder erzwingen kann.

                  Mag sein, aber man kann sie ablehnen. Das ist eben eine Frage der persönlichen Bereitschaft, wie weit man bereit ist, sich unsinnigen Kundenwünschen zu beugen. Das muss halt jeder für sich entscheiden. Ich kann aber auch durchaus verstehen, wenn einen bspw. finanzielle Aspekte diese Grenze verschieben lassen.

                  Gruß Gunther

                  1. Manchmal gibt es eben Dinge über die man sich nicht hinwegsetzen oder erzwingen kann.

                    Mag sein, aber man kann sie ablehnen. Das ist eben eine Frage der persönlichen Bereitschaft, wie weit man bereit ist, sich unsinnigen Kundenwünschen zu beugen.

                    Im wirklichen Leben ist es oft so, das ein mit Halbwissen ausgestatteter Verkäufer dem Kunden das Blaue vom Himmel verspricht, nur um den Auftrag (und somit seine Provision) zu bekommen.
                    "Den Rest macht dann schon der Programmierer..."

                    Und der hat dann auch Schuld wenn etwas nicht oder nur über Umwegen oder idealistischen Einbußen machbar ist.
                    Wenn man also nicht gerade Hobby-Webdesigner ist und von der Arbeit Frau und Kind ernähren muß stellt sich die Frage der persönlichen Bereitschaft nicht wirklich.