Komische Konstellation in css-Datei

Hallo,

ich habe da gerade eine css-Datei vor mir, die ich gerade aufzudröseln versuche. Dabei bin ich zwischenzeitlich mehrfach über eine komische Konstellation gestolpert, deren Sinn und Wirkung ich mir trotz Nachschlagen und Recherche im Internet nicht zu erklären vermag.

So findet sich hierin z.B.

#serviceright input.searchOnTop
{
background: #dcd9d2;
border: 1px solid #a29e8d;
font-size: 94%;
margin-top: 0px !important;
margin-top: 10px;
height: 14px !important;
height: 16px;
}

Dabei ist auffällig, daß in dem Fall z.B. unter Anderem die Angabe height hier zweimal hintereinander vorkommt. Einmal mit dem Zusatz „!important“ und einmal ganz normal. Nun habe ich dazu gefunden, daß man irgendwelchen Angaben in Stylesheets eine höhere Gewichtung geben kann, als einer Formatierungsangabe für das selbe Element in einem anderen Stylesheet. Aber in diesem besagten Fall stehen ja beide Angaben im selben Stylesheet direkt untereinander.
Kann mir hier irgendwer einen Tipp geben, was das für einen Sinn haben könnte und wie sich das nun in der Praxis auswirkt.

Gruß

Thomas

Hallo Thomas,

Kann mir hier irgendwer einen Tipp geben, was das für einen
Sinn haben könnte und wie sich das nun in der Praxis auswirkt.

Ja - der IE kann wie so vieles auch !important nicht. Er überschreibt also trotz dieser Angabe sowohl margin-top als auch height mit den folgenden Werten, selbst wenn ein stricter Doctype gewählt wurde. Es ist also ein einfacher CSS-Hack für den IE.

Schönen Gruß,
Rudy

Hallo Rudy,

nochmal ganz langsam zum mitschreiben. Ich bin um diese Zeit nicht mehr so ganz in der Lage zu folgen.

Ja - der IE kann wie so vieles auch !important nicht.

Das ist ja nichts neues.

Er überschreibt also trotz dieser Angabe sowohl margin-top als
auch height mit den folgenden Werten, selbst wenn ein stricter
Doctype gewählt wurde.

Klär mich mal bitte auf. Für andere Webbrowser hat die „!strikt“-Anweisung im Prinzip höchste Priorität. Der IE kennt diese Anweisung nicht und verwendet darum die Zeile ohne, hab ich das richtig verstanden?
Bleibt für mich aber immer noch die Frage, warum dann die Werte nicht identisch gewählt werden. Es sollte doch bei allen Browsern identisch aussehen. Warum gibt man dann für den IE andere Maße an?

Es ist also ein einfacher CSS-Hack für
den IE.

Wie es derer viele gibt.

Gruß

Thomas

Hi Thomas,

nochmal ganz langsam zum mitschreiben. Ich bin um diese Zeit
nicht mehr so ganz in der Lage zu folgen.

So spät ist es ja gar nicht - wenn man im Urlaub ist ^^

Der IE kennt diese Anweisung nicht und verwendet darum die Zeile
ohne, hab ich das richtig verstanden?

Genau. Richtige Browser zeigen das 14px hoch und ohne Abstand oben an. IE zeigt das 16px hoch und 10px Abstand oberhalb.

Bleibt für mich aber immer noch die Frage, warum dann die
Werte nicht identisch gewählt werden. Es sollte doch bei allen
Browsern identisch aussehen. Warum gibt man dann für den IE
andere Maße an?

Vielleicht weil der IE an anderer Stelle nochmal was falsch macht, das diese Korrektur erfordert. Derer Fälle gibt es viele - ich kenne die Gesamtkonstellation nicht.

Es ist also ein einfacher CSS-Hack für den IE.

Wie es derer viele gibt.

Jo…
http://centricle.com/ref/css/filters/
http://www.css4you.de/browsercomp.html

Bye,
Rudy

Hallo Rudy,

So spät ist es ja gar nicht - wenn man im Urlaub ist ^^

hab ich leider nicht mehr. :smile:

Genau. Richtige Browser zeigen das 14px hoch und ohne Abstand
oben an. IE zeigt das 16px hoch und 10px Abstand oberhalb.

Dann habe ich das zumindest schon mal verstanden. Beim IE kann ich also die Zeilen mit !important beim nachschauen, warum eine Formatierung nicht stimmt, einfach ignorieren, oder?

Vielleicht weil der IE an anderer Stelle nochmal was falsch
macht, das diese Korrektur erfordert. Derer Fälle gibt es
viele - ich kenne die Gesamtkonstellation nicht.

Das ist natürlich gut möglich. :smile:

Na ja, ich bin dann letztendlich auch erst um 5:30 ins Bett gekommen und hab mich dafür eine gute Stunde später wieder aufwecken lassen. Da hätte ich eigentlich auch noch weiterarbeiten können.

Gruß

Thomas

Hi Thomas,

So spät ist es ja gar nicht - wenn man im Urlaub ist ^^

hab ich leider nicht mehr. :smile:

Wie schade :smile: Ich noch die ganze Woche, zum Glück.

Beim IE kann
ich also die Zeilen mit !important beim nachschauen, warum
eine Formatierung nicht stimmt, einfach ignorieren, oder?

Wenn daraufhin dieselbe Eigenschaft des Elements nochmal überschrieben wird, schon - !important soll ja genau das verhindern. Wenn sie nicht mehr überschrieben wird, dann gilt es auch für den IE, denn komplett ignorieren tut er die Zeile nicht, er ignoriert nur !important.

Vielleicht weil der IE an anderer Stelle nochmal was falsch
macht, das diese Korrektur erfordert. Derer Fälle gibt es
viele - ich kenne die Gesamtkonstellation nicht.

Das ist natürlich gut möglich. :smile:

Sogar überaus wahrscheinlich…

Na ja, ich bin dann letztendlich auch erst um 5:30 ins Bett
gekommen und hab mich dafür eine gute Stunde später wieder
aufwecken lassen. Da hätte ich eigentlich auch noch
weiterarbeiten können.

Boah. Na dann, gute Arbeit!

Ciao,
Rudy

Hallo Rudy,

ich also die Zeilen mit !important beim nachschauen, warum
eine Formatierung nicht stimmt, einfach ignorieren, oder?

Wenn daraufhin dieselbe Eigenschaft des Elements nochmal
überschrieben wird, schon - !important soll ja genau das
verhindern. Wenn sie nicht mehr überschrieben wird, dann gilt
es auch für den IE, denn komplett ignorieren tut er die Zeile
nicht, er ignoriert nur !important.

Dann werde ich mir das ganze nochmal genau zu Gemüte führen und schauen, wo es hakt. Die Internetseite wird wohl beim Mozilla richtig angezeigt, beim IE aber nicht. also muß es irgendwas mit diesen Formatierungen zu tun haben.

Gruß

Thomas