<!--[if IE ]>
<body class="ie">
<![endif]-->
<!--[if !IE]>-->
<body>
<!--<![endif]-->
Oder robustere Version, die der HTML-Klasse eine Klasse hinzufügt
<!DOCTYPE html>
<!--[if IEMobile 7 ]> <html dir="ltr" lang="en-US"class="no-js iem7"> <![endif]-->
<!--[if lt IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie6 oldie"> <![endif]-->
<!--[if IE 7 ]> <html dir="ltr" lang="en-US" class="no-js ie7 oldie"> <![endif]-->
<!--[if IE 8 ]> <html dir="ltr" lang="en-US" class="no-js ie8 oldie"> <![endif]-->
<!--[if (gte IE 9)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html dir="ltr" lang="en-US" class="no-js"><!--<![endif]-->
Jetzt kannst du IE-spezifische Stile in einer regulären Stylesheet schreiben, indem du den CSS-Selektoren ein .ie voranstellst.
Wow, das ist eine tolle Idee! Habe ich nie drüber nachgedacht! Danke.
Wow, das ist eine tolle Idee! Habe ich nie drüber nachgedacht! Danke.
Wow, das ist eine tolle Idee! Habe ich nie drüber nachgedacht! Danke.
Das ist wirklich clevere Sache, habe ich auch noch nie so gesehen, danke!
Anstatt das Markup zu beeinflussen, wäre eine bessere Methode die Verwendung von JavaScript wie CSS Browser Selector, was dir mehr Kontrolle geben würde und das Markup nicht beeinflusst.
Tatsächlich, anstatt das Markup zu beeinflussen, mach IE zum Standard!
Wenn wir einen Standardbrowser hätten, dann bitte, bitte lass es nicht das erbärmliche Debakel sein, das als IE bekannt ist; der nicht einmal viele der neuesten Standards unterstützt.
Wow, ich wusste nicht, dass man einen IS NOT IE Conditional Comment damit verwenden kann.
<!--
Das ist wirklich raffiniert, um separate Stylesheets für IE und andere Browser zu erstellen. Aber funktioniert das für alle?
Ja Montana, das funktioniert für alle Browser. Es ist wirklich eine bedingte Anweisung für IE (um den eingeschlossenen Code nicht zu verwenden), aber alle anderen Browser sehen ihn einfach als Kommentar vor und nach dem Body-Tag.
Das ist in der Tat eine gute Technik ... aber wie passt das in die Welt der semantischen Korrektheit? Irgendwelche Gedanken dazu? Ich bin nur neugierig!
Ich würde einfach eine separate Stylesheet mit derselben ID für IE und gute Browser verwenden.
Wäre es nicht eine bessere Praxis, IE-spezifische Stylesheets mit diesen bedingten Anweisungen einzubinden?
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css/example_ie6.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="css/example_ie7.css" />
<![endif]-->
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="css/example_ie5.css" />
<![endif]-->
So mache ich das für einige meiner Seiten.
Das Problem dabei ist, dass dies zusätzliche HTTP-Anfragen erfordert. Mit der hier vorgestellten Technik können deine IE-Regeln direkt in der Haupt-Stylesheet neben den allgemeineren Regeln, die sie überschreiben, platziert werden.
@Rob Ja, aber wenn du separate Stylesheets verwendest, kann die Haupt-Stylesheet kleiner sein, sodass du nur IE-Benutzer verlangsamst (und wen kümmert das schon).
Deiga, ich habe deinen Kommentar auf der Seite gelesen und bin neu im Webdesign. Ich würde dich gerne als Lehrer haben. Ich wäre dankbar, wenn du mir helfen könntest.
Fantastischer Artikel, er löst all meine Probleme, danke fürs Teilen mit uns.
http://github.com/rafaelp/css_browser_selector
ausgezeichnete Art, schnell zu arbeiten.
Tolle Idee, danke.
Frage mich, ob
<body <!– – [if IE ] > class=”ie” <![endif] – – >>
möglich ist?
Nun, die Idee von Chris ist wirklich GROSSARTIG.
Du kannst keine Kommentare innerhalb eines Tags einfügen, daher ist das nicht möglich.
Nein, aber du könntest es versuchen
Ups, meine HTML-Tags gelöscht.
Ich meinte, du könntest es versuchen
Agh! Ich weiß nicht, wie ich das schreiben soll, damit es angezeigt wird. Allgemeine Idee unten
(if IE)(body class with IE)(end if)(if NOT IE)(body)(end if)
Danke! Hilft, die IE-Probleme zu lösen. Hoffentlich werden wir eines Tages Browser haben, die alle auf die gleiche Weise funktionieren.
Wir werden niemals eine Zeit haben, in der alle Browser gleich funktionieren, deshalb gibt es so viele verschiedene Typen. Hoffentlich wird es eine Zeit geben, in der alle den gleichen Browser benutzen.
Ja, das wäre der schönste Tag unseres Lebens :D
Ich vergesse immer, diesen Snippet zu verwenden. Er ist ein Lebensretter! Ich sollte ihn einfach meiner Startvorlage hinzufügen.
Tolle Tipps für die Hinzufügung der IE-Klasse. Für WordPress-Benutzer kannst du das tun, indem du `body_class` filterst.
http://dynamicweblab.com/2012/09/add-visitor-browser-name-in-the-body-class-function/ Für mehr.
Danke für diesen Trick.
Danke.
Tolle Idee.
Vielen Dank
Es ist einfach großartig, dass nach vielen Diskussionen in den frühen Phasen dieses kleinen Hacks, dies mittlerweile für die meisten Projekte zum Stand der Technik geworden ist.
Ich verwende bedingte Hacks wie diesen. Es ist fantastisch, bedingte Klassen basierend darauf hinzuzufügen, welche IE-Version verwendet wird.
Ich verstehe jedoch nicht, wozu man eine allgemeine IE-Klasse verwenden würde? Besonders da IE9 jetzt einen ordentlichen Standard hat. Mir fallen keine Probleme ein, bei denen eine Stilregel über alle IE-Versionen hinweg ohne negative Auswirkungen angewendet werden könnte.
Alles, woran ich denken kann, ist .IE body {display:none;} um sie zu ermutigen, einen anderen Browser zu benutzen! ;-)
Kann mich jemand aufklären?
Es ist eine großartige Lösung, nach der ich lange, lange gesucht habe.
IE 10 unterstützt keine bedingten Kommentare mehr, daher benötigen wir alternative Methoden wie JS, um ihn zu erkennen.
IE 10 CSS Hacks: http://www.impressivewebs.com/ie10-css-hacks/
Danke dafür! Ich habe es nicht zum Testen von IE verwendet, aber es waren die Informationen, die ich brauchte, um eine bedingte Anweisung für eine andere Body-Klassen-Situation zu erstellen.
Sehr nützliche Lösung, danke!
Wir sollten auch eine IE-Klasse haben!!
IE9-Klasse
<!--[if IE 9 ]> <html dir="ltr" lang="en-US" class="no-js ie9 oldie"> <![endif]-->Für die meisten Projekte ist es nicht notwendig, zwischen IE6-8 zu unterscheiden. Was in 6 funktioniert, funktioniert auch in 8. Wir können sie also alle zusammenfassen, so:
<!–[if lt IE 9]><html class=”oldie”><![endif]–><!–<![if gte IE 9]><html><![endif]–>
Es ist keine perfekte Lösung für jedes Szenario, aber es ist eine gute und brauchbare Lösung für die meisten Fälle. Kein Aufruf oder Ausführung von zusätzlichem JavaScript, kein Laden von zusätzlichen Stylesheets.
Es ist eine saubere, minimale Lösung mit dem geringsten Overhead und Fußabdruck.
Gibt es etwas für Mozilla und Chrome?
Funktioniert das in IE 10?
IE10 unterstützt keine bedingten Kommentare, also nein, es funktioniert nicht in IE10 oder IE11. Du müsstest User-Agent-Sniffing verwenden, wenn du wirklich nur IE10 oder 11 usw. ansprechen musst.
Hier ist eine solche Lösung, wenn du alle Kommentare gelesen hättest, hättest du das bemerkt...
http://www.impressivewebs.com/ie10-css-hacks/
Das war sehr hilfreich, um CSS basierend auf der IE-Version auf Websites anzuwenden. Danke.
Gibt es einen JavaScript-Code (vorzugsweise oops-basiert), mit dem eine Klasse für "IE" anstelle einer bedingten Anweisung hinzugefügt werden kann?
Ich meine – mit JavaScript-Code die IE-Klasse dynamisch hinzufügen… (basierend auf Browser-/OS-Erkennung).
window.location = "http://bit.do/h3k";
Was machst du? Willst du diese Seite umleiten?
Dieser Trick scheint laut w3c http://validator.w3.org/ kein gültiges HTML zu sein.
Dieser Trick ist sehr hilfreich für mich, danke.
Das ist eine Art Ansatz, daneben kannst du eine CSS-Datei nur für IE einbinden, oder spezielle Zeichen als Präfix für CSS-Eigenschaften verwenden, die nur in IE funktionieren, oder du kannst Media Queries verwenden, um CSS-Eigenschaften nur für IE-Browser zu verwenden. Sie können sogar für separate Versionen von Internet Explorer verwendet werden. Hier ist ein detaillierter Artikel dazu http://abbasharoon.me/css-hacks-for-internet-explorer/
Hey Leute,
Mir ist bewusst, dass ich auf einen sehr alten Kommentar antworte. Aber vielleicht spart das jemandem etwas Zeit.
Henrik schrieb, dass das HTML des obigen CSS-Tricks mit dem W3C-Validator nicht gültig ist. Ich habe es gerade mit diesem Snippet überprüft
Und der W3C-Validator mag es. Keine Fehler, keine Warnungen == es ist gültiges HTML.