6 Stimmen

In-line CSS IE-Hack

Ist es möglich, z.B. einen Box Model Hack zu erstellen und dabei Inline-CSS zu verwenden?

Zum Beispiel:

<div id="blah" style="padding: 5px; margin: 5px; width: 30px; /*IE5-6 Equivalent here*/">

Gracias.

2 Stimmen

Ist der Marktanteil des IE5 wirklich die Mühe wert? Ich schlage vor, den IE5 in denselben Korb wie Netscape 4 zu legen und Stylesheets einfach ganz auszublenden.

12voto

Atanas Korchev Punkte 30402

Sie können den "Prefixing"-Hack auch in Inline-Styles verwenden:

<div style="*background:red"></div>

Stellen Sie nur sicher, dass Sie die IE-Hacks am Ende des Style-Attributs einfügen. Ich schließe mich jedoch der Meinung an, dass Inline-Stile wenn möglich vermieden werden sollten. Bedingte Kommentare und eine separate CSS-Datei für Internet Explorer scheinen der beste Weg zu sein, um solche Probleme zu behandeln.

10voto

John Dunagan Punkte 1415

Ich würde nach außen gehen - schlagen eine Klasse auf das Element, oder verwenden Sie die ID, die Sie haben, und behandeln das Styling extern.

Ich schließe mich auch den konditionierten Kommentaren an, die den meinen vorausgegangen sind.

Davon abgesehen: Als ein absolut Als letzten Ausweg können Sie die folgenden Style-Hacks verwenden, um <= IE6 und sogar IE7 zu erreichen. Das Problem kommt, wenn der IE8 repariert wird, um Ihren Hack zu umgehen.

.foo {
padding: 5px;
^padding: 4px; /* this targets all IE, including 7. It must go first, or it overrides the following hack */
_padding: 3px; /* this targets >= IE6 */
width: 30px;
}

Viel Glück!

0 Stimmen

Gewiss. Tatsächlich kann jedes Zeichen ABER _ (Unterstrich) verwendet werden, um den IE7 zu umgehen.

3voto

alexp206 Punkte 1739

Ohne für oder gegen CSS-Hacks argumentieren zu wollen, würde ich persönlich, wenn ich so etwas tun müsste, lieber einen bedingten Kommentar verwenden:

<!--[if lt IE 7]>
<style>
#blah {
padding: 5px;
margin: 5px;
width: 30px;
}
</style>
<![endif]-->

0voto

eyelidlessness Punkte 60421

Die am besten geeignete Antwort lautet nicht . (Bearbeiten: um klar zu sein, ich meine, tun Sie es nicht inline, ich meine nicht, verwenden Sie keine CSS-Hacks).

Edit: Das funktioniert nicht, IE ignoriert den bedingten Kommentar. Verlassen die Antwort hier, um nicht ein Bastard zu sein.

Die nächstgeeignete Antwort ist der bedingte Kommentar:

<div id="blah" style="padding: 5px; margin: 5px; width: 30px; <!--[if lte IE 6]> ... <![endif]-->">

0 Stimmen

Dies ist jedoch kein gültiges HTML.

0 Stimmen

Können solche bedingten Kommentare in den Tag geschrieben werden?

0 Stimmen

@Konrad: Warum nicht? Es ist ein gültiger HTML-Kommentar. Der IE interpretiert ihn (was nicht gültig ist), aber es ist immer noch ein gültiger Kommentar.

0voto

savetheclocktower Punkte 1413

Beachten Sie, dass der IE 6 den Box-Modell-Hack benötigt im Modus Macken aber nicht im Standardmodus . IE 5 und IE 5.5 benötigen die BMH ständig.

Wenn Sie sich also im Standardmodus befinden, müssen Sie etwas verwenden wie das Original voice-family hacken. (die auf IE 5.X und pas IE 6). Wenn Sie sich im Quirks-Modus befinden, genügt jeder alte IE <= 6-Hack.

(Der Inhalt Ihrer Frage lässt mich vermuten, dass Ihre Seite im Quirks-Modus gerendert wird).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X