Keine Auswirkung auf <table> / tabellen
Nicole
- css
0 MudGuard0 Marc0 Nicole0 Ingo Turski0 Nicole0 Ingo Turski0 MudGuard
0 Alexander Brock
Hallo erst mal ;-)
Mal wieder eine Frage die man sich oft
stellt aber dann doch nie die Antwort sucht,
weil man es ja umgehen kann.
Ich erstelle ein Stylesheet wie folgt:
-----------------------
body{
font-family:arial,tahoma,verdana;
font-size:11px;
color:#444455;
}
---------------------
Da ja body die oberste Baumstufe darstellt, sollte
man davon ausgehen dass Inhalte in Tabellen
sich ebenfalls daran halten, wenn nicht explizit
neue class definiert.
ABER NEIN !
Wenn ich das so mache, nimmt der Inhalt in Tabellen
nur teilweise diese Anweisungen an.
Konkret:
Textfarbe - JA
Textgrösse - NEIN ( hier genauso gross wie ohne css).
Das bringt mich immer wieder zum Verzweifeln.
Würde der Table Tag gar keine Auswirkung auf
die Bodyanweisung haben, wärs mir lieber als
so, denn so bin ich nie sicher, welche der einzelnen
Bodynweisungen (font-weight,filter,etc..) nun
Einfluss auf die Tabelle haben. Ausserdem nervt
mich immer dieses "anscheinend" unlogische
Verhalten.
Die Frage nun endlich an alle CSS Experte:
Wieso also nur teilweise und nicht ganz oder gar nicht ?
bzw. wieso Texfarbe - Ja | Textgrösse - Nein
*Hinweis: Es handelt sich natürlich nicht wirklich um
ein Problem, denn für table definiere ich extranweisungen
(wenngleich auch mehr unnötige schreibanweisungen).
Jetzt aber noch ein echtes Problem:
Die Standard Zeilenabstände sind meiner Meinung nach
zum lesen zu gering. Aber wozu gibts css....
body{line-height:150%;}
oder
body{line-height:1.5em;}
Jetzt im html Text
<h1>1. Reihe <br> 2. Reihe</h1>
Jetzt passierts: 1+2. Reihe befinden sich fast auf gleicher
Zeile optisch gesehen. lässt sich natürlich
schlecht darstellen hier. Die Reihen überlagern sich
weil h1 die Zeilen Höhe von body annimmt, und diese
natürlich dafür zu klein ist.
Und nun ?
Einzige mir bekannte Lösung:
h3{line-height:20px;}
Dann muss man aber wissen wieviel Platz,
jede zeile mit H3 und der jeweiligen Schrift
einimmt und dann auch andere Objekt ebenso
behandeln.
CSS : So unlogisch ?
Gruss
Nikki
Hi,
Da ja body die oberste Baumstufe darstellt, sollte
man davon ausgehen dass Inhalte in Tabellen
sich ebenfalls daran halten, wenn nicht explizit
neue class definiert.
Wenn nicht explizit irgendwo in einem der beteiligten Stylesheets eine Regel vorhanden ist, die die Vererbung unterbricht.
Das kann z.B. auch im browser-internen default-Stylesheet sein.
Die Frage nun endlich an alle CSS Experte:
Wieso also nur teilweise und nicht ganz oder gar nicht ?
s.o.
bzw. wieso Texfarbe - Ja | Textgrösse - Nein
Weil für die Textgröße z.B. im browser-internen Stylesheet eine Angabe für Tabellen vorhanden ist, für die Farbe aber nicht.
Die Standard Zeilenabstände sind meiner Meinung nach
zum lesen zu gering. Aber wozu gibts css....
body{line-height:150%;}
oder
body{line-height:1.5em;}
Jetzt im html Text
<h1>1. Reihe <br> 2. Reihe</h1>
Jetzt passierts: 1+2. Reihe befinden sich fast auf gleicher
Zeile optisch gesehen.
Nicht nachvollziehbar in Opera 7.5x, Mozilla 1.7.x, IE 6.0. In welchem Browser hast Du dieses Problem?
Einzige mir bekannte Lösung:
h3{line-height:20px;}
Wie soll das helfen? Wenn h1 eine zu geringe Zeilenhöhe hat, hilft es nichts, h3 eine andere Zeilenhöhe zu verpassen.
CSS : So unlogisch ?
Bis jetzt sieht es nach einem Verständnis-Problem Deinerseits bezüglich der Vererbung sowie um einen Browserfehler zu handeln.
Darin eine Unlogik in CSS zu sehen fällt mir nicht ein.
cu,
Andreas
Moin moin
Jetzt im html Text
<h1>1. Reihe <br> 2. Reihe</h1>
Jetzt passierts: 1+2. Reihe befinden sich fast auf gleicher
Zeile optisch gesehen.Nicht nachvollziehbar in Opera 7.5x, Mozilla 1.7.x, IE 6.0. In welchem Browser hast Du dieses Problem?
Ich habe es im Mozilla (Mozilla 1.7
Mozilla/5.0 (Windows; U; WinNT4.0; de-AT; rv:1.7) Gecko/20040616) Nachvollziehen können...
Gruß,
Marc.
Hallo Andreas
<h1>1. Reihe <br> 2. Reihe</h1>
Jetzt passierts: 1+2. Reihe befinden sich fast auf gleicher
Zeile optisch gesehen.Nicht nachvollziehbar in Opera 7.5x, Mozilla 1.7.x, IE 6.0. In welchem Browser hast Du dieses Problem?
IE 5.5 SP4
Einzige mir bekannte Lösung:
h3{line-height:20px;}Wie soll das helfen? Wenn h1 eine zu geringe Zeilenhöhe hat, hilft es nichts, h3 eine andere Zeilenhöhe zu verpassen.
War nur ein Beispiel, meinte eigentlich <h1> wieder.
Was ich genau meinte ist, dass ich jedem einzelnen
<h> Objekt (warscheinlich auch andere objekte) eine
konkrete zeilenhöhe in pixeln mitgeben muss, wenn
ich eine Zeilenhöe im Body css habe.
Gruss
Nikki
Hi,
Was ich genau meinte ist, dass ich jedem einzelnen
<h> Objekt (warscheinlich auch andere objekte) eine
konkrete zeilenhöhe in pixeln mitgeben muss, wenn
ich eine Zeilenhöe im Body css habe.
Nein. Nur denjenigen, deren (angegebene oder über Browser-Default verwendete) Höhe nicht zum line-height passt. Und selbst hier kannst Du relative Angaben machen.
Sinnvoller finde ich hingegen, die Schriftgröße und line-height nicht für body zu definieren, sondern für die einzelnen, verwendeten Elemente. Dann kannst Du nämlich stets zueinander passende Werte vergeben (und hast nebenbei nicht das Problem mit ddem IE und der Vererbung auf Tabellenelemente).
freundliche Grüße
Ingo
Hallo Ingo,
Sinnvoller finde ich hingegen, die Schriftgröße und line-height nicht für body zu definieren, sondern für die einzelnen, verwendeten Elemente. Dann kannst Du nämlich stets zueinander passende Werte vergeben (und hast nebenbei nicht das Problem mit ddem IE und der Vererbung auf Tabellenelemente).
Ja so mache ich es ja auch immer gezwungenermassen ;-)
Du hast dich ( deine Webseite besucht ) anscheinend
schon sehr mit CSS Problematiken beschäftigt, daher
eine spezielle Frage an Dich :
Natürlich kann ich um Konflikte und Bugs im
Broser zu umgehen, alles einzeln classifizieren.
Nur verliert man damit auch übersichtlichkeit
in grossen Projekten und CSS Datei wird riesengross.
Gerade hinsichtlich der Vererbung finde ich CSS
megagut. Tja nur leider der blöde body BUG
im Explorer...
Weisst Du ob sich der Bug nur auf Body bezieht ?
Denn dann gehts auch einfacher:
Keine Body Angaben -> Gesamtes Projekt in
grosse Tabelle oder div -> diesem eine Klasse
schreiben -> und dann müssten sich doch alle Inhalte/Objekte
innerhalb dieser "box" nach dieser
Klasse richten ( vererbt bekommen), Stimmt das ?
...oder gibts da auch wieder Fallstricke ?
Gruss
Nikki
Hi Nikki,
Natürlich kann ich um Konflikte und Bugs im
Broser zu umgehen, alles einzeln classifizieren.Nur verliert man damit auch übersichtlichkeit
in grossen Projekten und CSS Datei wird riesengross.
sehe ich nicht so. Wieso sollte es unübersichtlich sein, einmal für alle verwendeten Elemente die Standardformatierungen anzugeben, z.B.
p, li, td {}
h1 {}
h2 {}
strong {}
...
oder anders gesagt: was spricht dagegen, die Formationen, die Du im body einheitlich für alle Elemente weitergeben willst, auf diese Weise (durch Aneinanderreihung der gewünschten Elemente) anzugeben? Natürlich ginge auch * {}, allerdings nicht in allen Browsern.
Weisst Du ob sich der Bug nur auf Body bezieht ?
AFAIK grundsätzlich auf die Vererbung zu Tabellenelementen.
freundliche Grüße
Ingo
Hi,
oder anders gesagt: was spricht dagegen, die Formationen, die Du im body einheitlich für alle Elemente weitergeben willst, auf diese Weise (durch Aneinanderreihung der gewünschten Elemente) anzugeben? Natürlich ginge auch * {}, allerdings nicht in allen Browsern.
Vorsicht bei *, insbes. wenn z.B. die font-family angegeben wird:
Davon wären dann auch pre und textarea betroffen (das KANN erwünscht sein, im Normalfall ist es das eher nicht).
Weisst Du ob sich der Bug nur auf Body bezieht ?
AFAIK grundsätzlich auf die Vererbung zu Tabellenelementen.
Ich betrachte die unterbrochene Vererbung eigentlich nicht als Bug.
Dasselbe würde passieren, wenn eine entsprechende Angabe nicht im Browser-, sondern im User-Stylesheet stünde.
Wenn man großen Wert darauf legt, daß eine Eigenschaft für ein Element einen bestimmten Wert bekommt, dann sollte man ihn selbst setzen.
Damit ist zwar nicht garantiert, daß er verwendet wird, aber die Wahrscheinlichkeit steigt.
cu,
Andreas
Hi,
Ich betrachte die unterbrochene Vererbung eigentlich nicht als Bug.
ich schon - jedenfalls was die "allgemeinen" Angaben betrifft.
Dasselbe würde passieren, wenn eine entsprechende Angabe nicht im Browser-, sondern im User-Stylesheet stünde.
Da hast Du zwar Recht, aber findest Du es denn logisch, daß sich die Schriftgröße auf P vererbt, nicht aber auf TD? Ok, man könnte argumentieren: "Tabellen enthalten tabellarische Daten, die eine spezielle Schriftformatierung ähnlich wie bei <pre> sinnvoll erscheinen lassen und wer doch normalen Text reinsetzt, möge diesen bitte in ein <p> verpacken" ;-)
freundliche Grüße
Ingo
Hallo,
Wenn ich das so mache, nimmt der Inhalt in Tabellen
nur teilweise diese Anweisungen an.
Konkret:
Textfarbe - JA
Textgrösse - NEIN ( hier genauso gross wie ohne css).
Das ist ein Bug im IE, dass dieser CSS zumindest teilweise nicht
in Tabellen heineinvererbt.
Gruß
Alexander Brock