html * und body> - Warum geht das?

Status
Nicht offen für weitere Antworten.

wenco

Erfahrenes Mitglied
Hallo,
Hier mal eine ungewöhnliche Forumsfrage: Warum funktioniert etwas?!
Ich habe, um Browserunterscheidungen zu treffen zwecks Einbindung eines transparenten PNGs, folgende Scriptfragmente benutzt (Und gleich vorneweg, es klappt prima und ich bin glücklich.)
html * (für IE) und body> (für den Rest der Browser)

Das brachte mich auf die Idee über diesen Weg auch unterschiedliche Schriftgößen für die Browser zu definieren, da sie entweder im IE zu groß oder bei Korrektur, im Netscape beispielsweise, zu klein angezeigt werden. (Ich wollte keine unterscheidlichen CSS-Dateien.) Auch das scheint zu klappen. Z.B.

* html a {
font-size: 80%;
}
zeigt diese Größe im IE an.

Ich bleibe aber unzufrieden, weil ich nicht weiß, warum das funktioniert. Und ich verstehe auch das HTML vor dem Sternchen nicht. Kann mir irgendjemand erklären was ich da tue :-))

Über Alternativen um das Schriftgrößennproblem in einer CSS-Datei zu lösen wäre ich auch dankbar. wenco
 
Zuletzt bearbeitet:
Vielen Dank für den Link auf die Tabelle. Das finde ich sehr hilfreich, aber meine Frage beantwortet das leider nicht. Die Möglichkeit mit div > p { color:blue; } oder div * b { color: violet; } Ausnahmen zu definieren hatte ich schon zuvor benutzt, aber wieso unterscheidet body und html die Browser? Was bedeutet das HTML in diesem Fall genau? Ich möchte gern was dazulernen und verstehen und nicht nur kopieren... Sofern mein Potenzial reicht :-).
 
Ich denke nicht, dass es html und body sind, die den Unterschied machen.
Du beschreibst oben html *. Das gilt für alle Elemente, die innerhalb von html vorkommen und wird von jedem Browser verstanden. Außerdem definierst Du body i.V.m. >. Letzteres versteht der IE nicht und interpretiert es demzufolge auch nicht.

Wenn es damit noch nicht klar ist, zeige doch mal ein bisschen mehr Code und schildere Dein Verständnisproblem etwas genauer, mehr mögliche Probleme sehe ich nämlich nicht.

Gruß hpvw
 
Ok und Danke, die Erklärung verstehe ich. Das würde aber bedeuten dass ich für die anderen Browser, die ja html * und body > verstehen, die Formatierungen zweimal und z.B. in verschiedenen Schriftgrößen gemacht hätte, warum ist das kein Fehler. Hebt die Bodyformatierung die HTML Formatierung wieder auf?- oder bin ich da zu kompliziert? Bzw. ist diese Art und Weise Browser anzusprechen üblich oder kann es da Probleme geben?
wenco
 
Die Variante ist ein möglicher Browserhack, der sicherlich relativ häufig Anwendung findet, da er sehr simpel ist.
Ich persönlich versuche solche Hacks zu vermeiden, wo es geht, denn keiner kann Dir sagen, wie die nächste Generation des Browser XY reagiert.
Ich nehme es auch, insbesondere bei Schriftgrößen, gerne in Kauf, dass die Browser ihre Eigenarten haben. Denn möglicherweise sind es gerade diese Eigenarten, die einen User veranlassen, den entsprechenden Browser zu verwenden oder sie haben sich an diese Eigenarten gewöhnt und wünschen es nicht, dass ein Webdesigner meint, er könne ihre Präferenzen besser hervorsehen. In dem Fall schaden solche strikten Vorgaben durch einen Webdesigner ggf. dem Zweck der Seite, zum Beispiel möglichst viele Kunden zufrieden zu stellen und auf der Seite zu halten, damit sie bei dem auftretenden Unternehmen bestellen. Es gilt IMHO im Webdesign der viel zitierte Spruch: "Der Köder muss dem Fisch schmecken, nicht dem Angler!"

Das sollte weitere Fragen beantworten:
Gruß hpvw
 
Ich gebe Dir Recht. Ich möchte zwar schon dass meine Seiten möglichst gleich aussehen in allen Browsern, zumal mein Schriftgrößenproblem die Lesbarkeit der Texte betrifft, aber wenn die Lösung des Problems wieder neue Probleme hervorruft, bzw. die Konsequenzen der Anwendung nicht ganz klar sind, sollte man Prioritäten setzen.
Danke noch für Deine Hilfe. wenco
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Zurück