Gunther: Regel nur dann anwenden, wenn andere Fähigkeit auch vorhanden

Beitrag lesen

@@Gunnar:

nuqneH

Ich hatte ja insgeheim gehofft, dass_du_auf den Thread antwortest, bist du doch für mich einer der CSS-Kenner hier im Forum!

Leider gibt es aber AFAIK keine Möglichkeit, die Anwendung einer Regel von dem "Verständnis" einer anderen Eigenschaft abhängig zu machen. Von daher meine
Frage 1: Richtig, oder ist mir etwas durchgegangen?

Ja. Nein.

Frage 2: Sehe ich das richtig, dass ich dieses Problem (sinnvoll/ am besten) nur per Javascript lösen kann?

Nein. Du kannst die Breite browserspezifisch angeben:

foo { max-width: 60em } /* du verwendest doch max-width, oder? */

Ja, min- und max-width.

* html { width: 60em } /* IE < 7 verstehen kein max-width */

Die IEs < 8 machen mir auch keine Sorgen, da deren Stylesheet eh separat ist und über CCs eingebunden wird (liegt daran, dass ich display:table(-...) verwende).

Bleiben aber u.a. der IE 8 und die Operas, die das alles verstehen, aber multi-column nicht beherrschen.

foo, x:-moz-any-link, x:not(:default) { width: 80em } /* für Firefox ≥ 3 */

AFAIR kann der FF multi-column schon ab der Version 2.

Für Safari (was ist mit anderen Webkits wie Chrome?) sollte sich auch was finden lassen.

Ja, Chrome & Co. zählen für mich als Safari, da sie ja dessen Rendering-Engine verwenden.

Frage 3: Kann man per JS eigentlich ermitteln, ob ein Browser eine bestimmte CSS-Eigenschaft "versteht", also interpretieren kann, und wenn ja, wie?

Abfrage einer gesetzten Eigenschaft foo { bar: baz }

if (window.getComputedStyle)

var quz = window.getComputedStyle(foo, "").getPropertyValue("bar");
else if (foo.currentStyle)
  var quz = foo.currentStyle.bar;


>   
> Wenn der Browser die Eigenschaft bar kennt, steht in quz ein entsprechender Wert (muss nicht baz sein!), ansonsten null oder "".  

Ja, vielen Dank. Ich habe dazu auch etwas im Web gefunden. Wenn du evt. kurz einen Blick darauf werfen könntest und mir deine Meinung dazu sagen würdest (brauchbar oder nicht im Sinne von 'funktioniert zuverlässig', 'ist ordentlicher Stil', etc.): <http://thinkweb2.com/projects/prototype/feature-testing-css-properties/> (letzten beiden Absätze ab "getStyleProperty")  
  
Ich meine, eine auf JS basierende Lösung würde mir reichen, da es nicht zwingend notwendig ist. Allerdings wäre eben eine rein CSS basierte Möglichkeit "schöner". Nur sind Lösungen, die auf CSS-Hacks basieren natürlich auch nicht der Weisheit letzter Schluss. ;-)  
  
Besten Dank & Gruß  
Gunther