Gibt es eine Möglichkeit, "wenn IE" innerhalb einer CSS-Datei zu tun?

8

Ich weiß, dass Sie in Internet Explorer bedingte Anweisungen zum Laden verschiedener CSS-Dateien einfügen können, aber können Sie dies in einer CSS-Datei tun?

Ich habe eine Situation, in der ich möchte, dass der rechte Rand 20 ist, wenn es Internet Explorer ist, aber 10, wenn es ein anderer Browser ist.

    
leora 12.12.2010, 16:02
quelle

4 Antworten

14

Der einfachste Weg, dies zu handhaben, sind Bedingungen in Ihrem HTML, die ein div mit einer bestimmten ID um den Rest der Seite legen.

%Vor%

Dann kann Ihr CSS dies tun:

%Vor%

Diese Art von macht alle diese CSS-Hacks unnötig.

    
John Fisher 12.12.2010, 16:07
quelle
2

Es gibt keine offizielle bedingte Kommentarsyntax für CSS. Es gibt nur bedingte HTML- und JavaScript-Kommentare, also sollten Sie mit diesen kreativ werden ( John Fisher zeigt einen Weg).

Sie könnten bedingtes CSS mit den sehr bekannten CSS-Hacks emulieren, aber das möchte ich nicht. Sie könnten bei jeder beliebigen IE-Version unerwartet brechen oder anderweitig arbeiten, da Hacks Fehler in der CSS-Behandlung des IE ausnutzen sollen.

    
BoltClock 12.12.2010 16:08
quelle
2

Es gibt Hacks wie dieses , wo Regeln verwendet werden, die IE nicht interpretieren kann, bedeutet, dass IE die Verarbeitung einer Regel beendet es für andere Browser sicher zu verwenden.

So:

%Vor%     
amelvin 12.12.2010 16:08
quelle
0

Sie werden Ihre CSS-Dateien, die diese Art von Hacks machen, in Unordnung bringen. Erstellen Sie lieber eine separate Datei für IE. Setzen Sie den Rand in Ihrer allgemeinen CSS-Datei auf 10 und in Ihrer IE-spezifischen Datei auf 20, die (bedingt) nach Ihrer allgemeinen CSS-Datei geladen werden sollte. Sie wissen, wie man das macht und es gibt kaum einen Grund, es anders zu machen.

    
GolezTrol 12.12.2010 16:23
quelle