IE: Conditional Comments in CSS-Dateien?
Martin
- browser
0 Ingo Turski0 Andreas Schneider0 Martin0 Orlando0 Ingo Turski
0 Martin0 Ingo Turski0 Martin
0 Cyx23
Ein herzliches Hallo in die Runde,
ich such' mir seit einiger Zeit die Finger wund. Ich suche nämlich nach einer klaren Aussage, ob es sowas wie Conditional Comments für den MS IE auch *innerhalb* einer CSS-Datei gibt.
Ich möchte meine Seiten mit ein paar wenigen IE-spezifischen CSS-Angaben ergänzen, aber ich würde diese Zusatzangaben gerne in die existierende zentrale CSS-Datei einbauen. Sonst müsste ich etliche HTML-Dateien einzeln überarbeiten, und dazu bin ich eigentlich zu faul... :(
Gibt's da nicht auch was von Ra*****arm? :))
Ich schau nach dem F1-Rennen mal wieder vorbei, ob jemand einen Tip für mich hat.
So long,
Martin
Hi,
conditional comments sind spezielle HTML-Kommentare. Damit müßte die Frage doch eigentlich beantwortet sein.
Du hast zwei Möglichkeiten:
1. browserweiche im CSS, z.b. html>body
2. ein spezielles CSS-File über conditional comment einbinden.
Die zweite Möglichket sollte sich mit ein paar Klicks umsetzen lassen. Dateiübergreifendes Suchen nach der Zeile, in der Du das normale CSS einbindest - ersezen durch dieselbe zuzüglich des conditional comments.
freundliche Grüße
Ingo
Hallo Ingo, hallo Martin,
- browserweiche im CSS, z.b. html>body
hierzu ein Linktip; http://glish.com/css/hacks.asp
Grüße
Andreas
Hi Ingo,
danke für die Antwort - du bist sowieso derjenige, der für *diese* Frage am ehesten qualifiziert war. *g*
Ich habe nämlich deinen Dreh mit den CSS-Infoboxen abgekupfert, bei dem ich dich gestern schon über die Schwäche des IE informiert habe. Und jetzt hab ich einfach gehofft, ich könnte den IE5-Hack in die schon vorhandene CSS-Datei einflechten.
conditional comments sind spezielle HTML-Kommentare. Damit müßte die Frage doch eigentlich beantwortet sein.
Jein. Deswegen fragte ich ja nach "sowas wie ...", also nach einem vergleichbaren Ansatz. Dass ich nicht exakt den Terminus "Conditional Comment" suche, war mir klar.
- browserweiche im CSS, z.b. html>body
Kann ich mit dem Ansatz was anfangen? Hmm, mal hirnen...
- ein spezielles CSS-File über conditional comment einbinden.
Ja, das sollte auf jeden Fall gehen, aber es bedeutet, dass ich fast *jede* HTML-Datei nochmal anfassen muss. Naja, so schlimm wird das auch nicht sein. :-|
Ciao,
Martin
Hi Martin,
danke für die Antwort - du bist sowieso derjenige, der für *diese* Frage am ehesten qualifiziert war. *g*
naja. ;-p
- browserweiche im CSS, z.b. html>body
Kann ich mit dem Ansatz was anfangen? Hmm, mal hirnen...
Der Selektor
* html #id { ... }
wird nur von M$IE4 bis 6 umgesetzt.
Grüße,
Roland
Hi,
Der Selektor
* html #id { ... }
wird nur von M$IE4 bis 6 umgesetzt.
Ich würde eher sagen, daß der Selektor nur von diesen IEs falsch interpretiert wird.
Andere Browser dürften die unter diesem Selektor stehenden Regeln ignorieren, da dieser Selektor kein Element auswählt.
Denn html ist ja das root Element, dieses steckt in keinem anderen Element, der Selektor * html erfordert aber ein Element um das html Element.
cu,
Andreas
Hi Andreas,
* html #id { ... }
Ich würde eher sagen, daß der Selektor nur von diesen IEs falsch interpretiert wird.
Ja.
Andere Browser dürften die unter diesem Selektor stehenden Regeln ignorieren, da dieser Selektor kein Element auswählt.
Ja.
Denn html ist ja das root Element, dieses steckt in keinem anderen Element, der Selektor * html erfordert aber ein Element um das html Element.
Ja. Genau das löst solche Probleme.
Grüße,
Roland
Hi,
Ja. Genau das löst solche Probleme.
nur nicht dieses spezielle, bei dem ein "IE5-Hack" gesucht wurde..;-)
freundliche Grüße
Ingo
Hi,
Ich habe nämlich deinen Dreh mit den CSS-Infoboxen abgekupfert, bei dem ich dich gestern schon über die Schwäche des IE informiert habe. Und jetzt hab ich einfach gehofft, ich könnte den IE5-Hack in die schon vorhandene CSS-Datei einflechten.
Du könntest hier die Definitionen für den IE5 angeben und über den Tantek-Hack für den IE6 wieder zurücksetzen, also (ungetestet):
a.infobox span, a.infobox:hover span {
voice-family: ""}"";
voice-family: inherit;
display:inline;
}
- ein spezielles CSS-File über conditional comment einbinden.
Ja, das sollte auf jeden Fall gehen, aber es bedeutet, dass ich fast *jede* HTML-Datei nochmal anfassen muss. Naja, so schlimm wird das auch nicht sein. :-|
Wieso den das? Du könntest einen Editor verwenden, der das für Dich übernimmt.
freundliche Grüße
Ingo
Hallo Ingo,
ich glaube, ich verzweifle noch an deiner Tooltip-Lösung, so genial sie auch sein mag. Vielleicht kannst du mir nochmal auf die Sprünge helfen.
Ich habe das Prinzip auf
http://do4fun.homeip.net/blue/confidence.htm
umgesetzt und nur an den Farben und an den Werten für die Positionierung ein wenig rumgespielt. Außerdem habe ich den Klassennamen von "infobox" auf "tooltip" geändert. Die Seite gehört vom Design her eigentlich in ein Frameset, auf das ich zum Ausprobieren aber verzichte. Doch all das dürfte ja am Prinzip nichts ändern.
Zum Testen habe ich gerade leider nur IE 5.5 in Deutsch und Englisch sowie Opera 7.23 zur Hand. Opera macht's prima, meine beiden IE's blenden die Infobox zwar ein, aber beim Wegziehen der Maus nicht wieder aus.
Das Beispiel auf deiner Website funktioniert aber wunderbar. Steckt da in deinem Stylesheet vielleicht noch mehr, worauf der IE besonderen Wert legt?
Seltsam, oder??
In fasziniertem Staunen
Martin
Hi,
Das Beispiel auf deiner Website funktioniert aber wunderbar. Steckt da in deinem Stylesheet vielleicht noch mehr, worauf der IE besonderen Wert legt?
nein. Allerdings unterscheidet sich Deine Version in vielen Punkten.
freundliche Grüße
Ingo
- Du verwendest keine Angabe zu left. Könnte sein, daß sich der IE 5 daran stört. Der IE 6 macht's allerdings problemlos mit.
Das hatte ich zuerst noch drin, hab's dann probehalber mal rausgenommen, hat aber nichts Grundsätzliches geändert.
- Du verwendest das Ganze in einem LI.
Mir ist auch bisher nicht in den Sinn gekommen, dass das einen Unterschied machen könnte. Das LI hat doch hier sozusagen den Stellenwert des P-Elements. Sind sogar beides Block-Elemente.
- Du setzt in den SPAN (und damit auch A) unzulässiger Weise das blocklevel-Element H4. Kann sein, daß auch das Probleme bereitet.
Ups, gute Idee, mal grundsätzlich. Aber da extra für den IE das A-Element hier sowieso zum Block-Element erklärt wird, dürfte es eigentlich nicht stören. Höchstens andere Browser, aber der Opera akzeptiert's.
- Du gibst dem SPAN eine Weite, was bei inline-Elementen nicht geht.
Hm, gibt's eine bessere Methode außer deiner Idee mit den <br> im Text? Das hat halt den Schönheitsfehler, dass dann kein Blocksatz geht.
Nebenbei bemerkt brauchst Du für :hover nur die veränderten Eigenschaften definieren.
Ich weiß. :) Aber ich bin allgemein ein Anhänger vollständiger Angaben, auch wenn's redundant ist. Ich schreibe auch in C "unsigned int" anstatt nur "unsigned". Ist so'ne Macke von mir.
Du meinst also, ich könnte hier ein allgemeines Problem mit Block- und Inline-Elementen haben? Herrje, da muss es doch eine Möglichkeit geben! Die Idee war so schön: Mehrzeilige Tooltips, womöglich sogar mit Formatierungen, und das alles ohne JS...
*seufz* Also gut, dann muss ich mir das Konzept wohl nochmal grundsätzlich durch den Kopf gehen lassen.
Danke jedenfalls für die Denkhilfen,
Martin
Hi,
- Du verwendest keine Angabe zu left.
Das hatte ich zuerst noch drin, hab's dann probehalber mal rausgenommen, hat aber nichts Grundsätzliches geändert.
Wenn ich mich recht entsinne, hatte ich diese Angabe deshalb angegeben, weil es sonst Probleme gibt, wenn der Link zu weit an der rechten Seite ist, was bei Fließtext ja nicht beeinflußbar ist.
- Du setzt in den SPAN (und damit auch A) unzulässiger Weise das blocklevel-Element H4. Kann sein, daß auch das Probleme bereitet.
Ups, gute Idee, mal grundsätzlich. Aber da extra für den IE das A-Element hier sowieso zum Block-Element erklärt wird, dürfte es eigentlich nicht stören. Höchstens andere Browser, aber der Opera akzeptiert's.
Ist aber trotzdem nicht zulässig...
- Du gibst dem SPAN eine Weite, was bei inline-Elementen nicht geht.
Hm, gibt's eine bessere Methode außer deiner Idee mit den <br> im Text? Das hat halt den Schönheitsfehler, dass dann kein Blocksatz geht.
Ich habe es gerade mal ausprobiert und es scheint zu funktionieren; zusätzlich anzugeben:
a.infobox:hover span { display:block; width:20em; text-align:justify; }
wobei der IE 5.x zusätzlich noch wie bisher:
a.infobox span { display:none; }
benötigt.
Allerdings darf man hierbei das margin-top für den span nur dem IE geben, da andere Browser durch display:block den span bereits unter die Zeile setzen.
freundliche Grüße
Ingo
Hallo,
ich such' mir seit einiger Zeit die Finger wund. Ich suche nämlich nach einer klaren Aussage, ob es sowas wie Conditional Comments für den MS IE auch *innerhalb* einer CSS-Datei gibt.
Ich möchte meine Seiten mit ein paar wenigen IE-spezifischen CSS-Angaben ergänzen, aber ich würde diese Zusatzangaben gerne in die existierende zentrale CSS-Datei einbauen. Sonst müsste ich etliche HTML-Dateien einzeln überarbeiten, und dazu bin ich eigentlich zu faul... :(
für die IE gibt es einige Browserweichen, z.B. http://www.lipfert-malik.de/webdesign/tutorial/css.html#BrowserweichenIE5 und http://www.lipfert-malik.de/webdesign/tutorial/bsp/css-weiche-filter.html, so * html, html + body, bei denen ich meist eine geringe Gefahr von Parsingfehlern bzw. nachfolgenden Fehlinterpretationen sehe und die ich deswegen einigen prominenten "Hack"s vorziehe, allerdings würde ich jede CSS-Weiche nochmal in der konkreten Anwendung gründlich testen.
Grüsse
Cyx23