Warum "* html img"?
Gerrit
- html
2 Christian Kruse
Hi,
würde statt "* html img"
nicht schon "img" genügen?
Frohes Fest
Moin Gerrit,
würde statt "* html img"
nicht schon "img" genügen?
Naja, das ist ein CSS-Hack. Hintergrund ist, dass * html
eigentlich nicht matchen kann, weil html das Root-Element ist und damit kein Eltern-Element hat. Hier wird also ein Bug im IE6 ausgenutzt, um Browser-spezifisches CSS zu schreiben.
LG,
CK
Tach!
würde statt "* html img"
nicht schon "img" genügen?
Naja, das ist ein CSS-Hack.
Und selbst wenn es keiner wäre, also das * mal weggelassen, hat auch html img mitunter seine Daseinsberechtigung, obwohl img im Prinzip ausreichend wäre. Durch das zweite Element erhöht sich die Spezifität, weswegen html img ein einfaches img überschreibt.
dedlfix.
[latex]Mae govannen![/latex]
würde statt "* html img"
nicht schon "img" genügen?
Naja, das ist ein CSS-Hack.Und selbst wenn es keiner wäre, also das * mal weggelassen, hat auch html img mitunter seine Daseinsberechtigung, obwohl img im Prinzip ausreichend wäre. Durch das zweite Element erhöht sich die Spezifität, weswegen html img ein einfaches img überschreibt.
Diese Kombination ist aber in diesem speziellen Fall trotzdem vollkommen sinnfrei, da <img/>
außerhalb von <html>
nicht vorkommt, also html img
immer greift.
Stur lächeln und winken, Männer!
Kai
var jQuery = $(hit);
Tach!
Durch das zweite Element erhöht sich die Spezifität, weswegen html img ein einfaches img überschreibt.
Diese Kombination ist aber in diesem speziellen Fall trotzdem vollkommen sinnfrei, da<img/>
außerhalb von<html>
nicht vorkommt, alsohtml img
immer greift.
"html irgendwas" greift immer, soweit richtig. Aber die Spezifität ist mit 0-0-0-2 höher als 0-0-0-1 bei einfachem "irgendwas". Genau das soll in der Form passieren, wenn man Eigenschaften überschreiben möchte und dies nicht durch einen gleichwertigen Selektor hinter den bereits vorhandenen Regeln für "irgendwas" notiert bekommt. Dies lässt sich manchmal nicht erreichen, wenn man keine grundlegenden Eingriffe in bestehende Systeme machen möchte und nur vorher Regeln hinzufügen kann.
Ebenso "sinnlos" ist #foo #bar, .foo #bar oder foo#bar, weil #bar allein bereits eindeutig genug ist. Auch hier erhöht sich durch die "überflüssigen" Selektoren die Spezifität und hat Einfluss darauf, welche Regel am Ende gewinnt.
dedlfix.
Hallo dedlfix
Ebenso "sinnlos" ist #foo #bar, .foo #bar oder foo#bar, weil #bar allein bereits eindeutig genug ist.
Nicht unbedingt. Bei einem CSS, das üblicherweise für mehrere Dokumente verwendet wird, kann es in jedem dieser Dokument #bar geben.
Da kann es durchaus sein, dass eine Regel nur gelten soll, wenn #bar ein ganz bestimmtes Vorfahrenelement oder einen bestimmten Elementtyp hat.
Auf Wiederlesen
Detlef
Hi,
Diese Kombination ist aber in diesem speziellen Fall trotzdem vollkommen sinnfrei, da
<img/>
außerhalb von<html>
nicht vorkommt, alsohtml img
immer greift.
Du gehst davon aus, daß das CSS nicht auch noch für Dokumente in anderen Sprachen verwendet wird.
cu,
Andreas
Om nah hoo pez nyeetz, Kai345!
Diese Kombination ist aber in diesem speziellen Fall trotzdem vollkommen sinnfrei, da
<img/>
außerhalb von<html>
nicht vorkommt, alsohtml img
immer greift.
Ergänzend und konkretisierend zu dedlfix' Antwort:
In einem Blog oder Wiki greift man auf vorbereitete Templates zurück. Die gewünschten Änderungen möchte man nicht in den Originaltemplates unterbringen, weil man sie sonst bei updates verlieren würde. Wenn man jetzt nicht dafür sorgen kann, dass das eigene Stylesheet nach dem originalen geladen wird, kann man durch spezifischere Selektoren die Vorgaben des Originals überschreiben. Und da ist
html selektor {
foo: bar;
baz: quz;
...
}
deutlich weniger aufwändig als
selektor {
foo: bar !important;
baz: quz !important;
...
}
Matthias
Moin Matthias,
[…] deutlich weniger aufwändig als
selektor {
foo: bar !important;
baz: quz !important;
...
}
Der Aufwand sollte hier eine untergeordnete Rolle spielen. `!important` sollte man NIE benutzen, ausser es ist durch die Umstände überhaupt nicht anders möglich. Die Gründe sollten hinreichend bekannt sein.
LG,
CK
--
<http://ck.kennt-wayne.de/>
Hi,
in dem Zusammenhang habe ich noch folgendes gefunden:
/*\*//*/
Hat dies auch eine bestimmte Bedeutung oder nur ein missglückter Kommentar?
Tach!
/*\*//*/
Hat dies auch eine bestimmte Bedeutung oder nur ein missglückter Kommentar?
Sieht aus, als ob es hat (siehe Abschitt The Commented Backslash Hack).
dedlfix.
Om nah hoo pez nyeetz, dedlfix!
Sieht aus, als ob es hat (siehe Abschitt The Commented Backslash Hack).
hatte. Diese Browser sind ausgestorben.
Matthias