Conditional Comments in CSS Dateien
Christoph
- css
Hallo zusammen,
kann man Conditional Comments auch direkt in CSS-Files einbinden?
Hintergrund ist der, dass ich gerne eine globale CSS-Datei erstellen
moechte, die alles weitere mittels "@import url" erledigt. Und an
dieser Stelle sollten auch ggfs. Browserweichen eingebunden werden.
Alles, was ich bisher ueber CC gefunden habe, waren Beispiele, in
denen das direkt in der HTML-Datei gemacht wurde, nicht aber im CSS-File
selbst.
Besten Dank.
Christoph
Hoi,
sowie
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->
kann man nicht direct in .css file schreiben, doch es gibt hacks fuer IE6, die man in .css datei schreiben kann, sowie
height:233px !important;
oder
html>body #left_menu ul li a {
height: auto;
min-height: 16px;
}
usw
kannst du auf dieser seite genauer anschauen
< http://www.webdevout.net/css-hacks>
LG,
Inita
Hoi,
ich denke, kannst du auch so machen:
<style type="text/css" media="screen">
@import url(main.css);
<!--[if IE]>
@import url(ie6.css);
<![endif]-->
</style>
LG,
Inita
Hallo Inita,
mit den IE-Hacks bin ich - mitterweile - vertraut.
Und genau das, was du in deinem Beispiel auffuehrst
<style type="text/css" media="screen">
@import url(main.css);
<!--[if IE]>
@import url(ie6.css);
<![endif]-->
</style>
moechte ich ja gerne umgehen bzw. direkt in das globale
CSS-File packen.
Aber Danke fuer deine Antwort!
Gruesse
Christoph
Hallo Inita,
mit den IE-Hacks bin ich - mitterweile - vertraut.
Und genau das, was du in deinem Beispiel auffuehrst<style type="text/css" media="screen">
@import url(main.css);
<!--[if IE]>
@import url(ie6.css);
<![endif]-->
</style>moechte ich ja gerne umgehen bzw. direkt in das globale
CSS-File packen.
siehe mein dazu meinen kommentar
https://forum.selfhtml.org/?t=170261&m=1112785
btw: @import ist eine uncoole methode im css einzubinden - nutze das <link /> element im <head /> bereich
Hallo suit,
btw: @import ist eine uncoole methode im css einzubinden -
Warum? Ich orientiere mich an den YAML-Standard. Dort wird es
mittels Import realisiert.
nutze das <link /> element im <head /> bereich
Desweiteren moechte ich es eben nicht in das HTML packen, da
ich fuer verschiedene Gruppen verschiedene CSS-Files einbinden
moechte. Daher brauche ich eine Art globale CSS-Datei, die
alles weitere regelt. Der einzige dynamische Teil im HTML ist
dann das einbinden eben jener CSS-Datei.
Danke und Gruss,
Christoph
Warum? Ich orientiere mich an den YAML-Standard. Dort wird es
mittels Import realisiert.
meine meinung zu yaml sollte bekannt sein - tolle sache, aber nix für mich (viel zu überladen)
@import ist etwas unpraktisch, da du alles innerhalb des <style /> elements vor dem browser verstecken solltest bez in xhtml-dokumente sogar MUST
<style type="text/css">
/* <![CDATA[ */
p>em { color: red };
/* ]]> */
</style>
selbriges gilt übrigens auch für javascript - um dir diesen "krempel" zu sparen empfiehlt sich eben die einbindung über das <link />-element
Desweiteren moechte ich es eben nicht in das HTML packen, da
das tust du doch bereits und du machst es inline
moechte. Daher brauche ich eine Art globale CSS-Datei, die
das ist üblicherweise die erste, die man einbindet
alles weitere regelt. Der einzige dynamische Teil im HTML ist
dann das einbinden eben jener CSS-Datei.
das dynamische einbinden lässt sich auch mit einer ausgabe im head regeln, der unterschied ist praktisch nicht vorhanden
bei unterseite xyz kommt halt ein zweites <link />-element hinzu
Hoi,
meine meinung zu yaml sollte bekannt sein - tolle sache, aber nix für mich (viel zu überladen)
@import ist etwas unpraktisch, da du alles innerhalb des <style /> elements vor dem browser verstecken solltest bez in xhtml-dokumente sogar MUST
<style type="text/css">
/* <![CDATA[ */p>em { color: red };
/* ]]> */
</style>
wieso genau ist mit <link /> besser css ienzubinden. Ich denke muss man nicht <![CDATA[ schreiben, weil den @import url, kann die alte browser sowieso nicht verstehen
LG,
Inita
<style type="text/css">
/* <![CDATA[ */p>em { color: red };
/* ]]> */
</style>wieso genau ist mit <link /> besser css ienzubinden. Ich denke muss man nicht <![CDATA[ schreiben, weil den @import url, kann die alte browser sowieso nicht verstehen
was du denkst, ist irrelevant - eine css deklaration kann einen xml parser dazu bringen, die seite nicht zu parsen - dann geht garnix mehr - und das betrifft besonders neue browser und das ist gut so
genau darum MUSST das zeug im style (welches eigentlich PCDATA erwartet) mit CDATA maskieren
es ist mit <link /> demnach nicht besser sonder du umgehst eine potentielle fehlerquelle da diese speziellen "versteckmethoden" dort niemals nötig sind, egal welche dtd du verwendest
@@suit:
wieso genau ist mit <link /> besser css ienzubinden. Ich denke muss man nicht <![CDATA[ schreiben […]
was du denkst, ist irrelevant - eine css deklaration kann einen xml parser dazu bringen, die seite nicht zu parsen
Hä? Was für Deklarationen hast du im Sinn?
Mir fiele nur sowas in der Art ein: li:before {content: '<'}
Live long and prosper,
Gunnar
Hä? Was für Deklarationen hast du im Sinn?
Mir fiele nur sowas in der Art ein:
li:before {content: '<'}
sollte nicht ein ganz gewöhnlicher nachfahrenselektor reichen?
p>em
spätestens wenn mal alle browser in der lage sind, application/xml bzw application/xhtml+xml zu parsen wirds nur noch browser geben, die die dinger dann endlich unterstützen
@@suit:
sollte nicht ein ganz gewöhnlicher nachfahrenselektor reichen?
p>em
Das ist aber ein ganz gewöhnlicher Kindselektor.
'>' sollte (im Gegensatz zu '>' und auch '&') harmlos sein. [XML §2.4]
Außer bei gewissem generiertem Inhalt fiele mir nichts ein, warum CSS in XHTML nicht PCDATA sein sollen dürfte. Und dann könnte man '>' und '&' auch escapen ('\3E ' bzw. '\26 ').
Live long and prosper,
Gunnar
@@Gunnar Bittersmann:
'>' sollte (im Gegensatz zu '>' und auch '&') harmlos sein. [XML §2.4]
Grmpf. "im Gegensatz zu '<' und auch '&'"
Und dann könnte man '>' und '&' auch escapen ('\3E ' bzw. '\26 ').
Copy and paste error detected.
Live long and prosper,
Gunnar
@@suit:
btw: @import ist eine uncoole methode im css einzubinden - nutze das <link /> element im <head /> bereich
BTW: 'link' ist auch uncool. Cool ist:
<?xml-stylesheet type="text/css" href="myStyle.css"?>
Funktioniert natürlich nur bei XHTML als 'application/xhtml+xml' (o.ä. Medientyp).
Live long and prosper,
Gunnar
Hi,
btw: @import ist eine uncoole methode im css einzubinden - nutze das <link /> element im <head /> bereich
BTW: 'link' ist auch uncool.
Ganz generell hat Style nichts mit Coolness zu tun (auch wenn das jede Menge Hiphop-Kiddies nicht begreifen koennen).
MfG ChrisB
kann man nicht direct in .css file schreiben, doch es gibt hacks fuer IE6, die man in .css datei schreiben kann, sowie
height:233px !important;
was ist an !important bitte ein hack?
und auch wenns eine viel diskutierte glaubensfrage ist: keine hacks verwenden, conditional comments sind leichter handhabbar und zuverlässiger bzw zukunftssicherer
einen bug ausnutzen der ggf irgendwann wieder unter irgendwelchen umständen in einem anderen browser auftreten kann (= hack) ist eine schlechte idee - das sagt auch andy budd ;)
auch wenn das buch "css mastery" von ihm teilweise etwas seltsame vorschläge macht (besonders in puncto codereihenfolge bei mehrspaltigen layouts hat er im grunde recht
Hi,
height:233px !important;
was ist an !important bitte ein hack?
die Angabe eines weiteren Wertes der selben Eigenschaft nach diesem Wert. Einer der blödesten Hacks, die ich kenne, und eigentlich nur in style-Attributen halbwegs anwendbar.
und auch wenns eine viel diskutierte glaubensfrage ist: keine hacks verwenden, conditional comments sind leichter handhabbar und zuverlässiger bzw zukunftssicherer
Tja, und ich behaupte noch immer das exakte Gegenteil. Wer Conditional Comments zur Einbindung von CSS-Ressourcen verwendet, hat von der Thematik ganz offensichtlich nicht die geringste Ahnung.
Weiteres siehe Archiv. Das Thema ist durchgekaut genug.
Cheatah
@@Christoph:
kann man Conditional Comments auch direkt in CSS-Files einbinden?
Leider hat es M$ versäumt, das Zeugs nicht nur in HTML und JavaScript, sondern auch da, wo man es am nötigsten brauchen würde, zu impementieren – in CSS.
http://forum.de.selfhtml.org/archiv/2008/1/t164983/#m1075845,
http://forum.de.selfhtml.org/archiv/2008/3/t167833/#m1094860
Live long and prosper,
Gunnar