Nicole: Keine Auswirkung auf <table> / tabellen

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

  1. 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

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. 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.

      --
      Und immer schön
      validieren (http://validator.w3c.org)
      sh:( fo:| ch:? rl:? br:> n4:& ie:% mo:} va:} de:] zu:) fl:( ss:| ls: js:(
      http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A%28+fo%3A%7C+ch%3A%3F+rl%3A%3F+br%3A%3E+n4%3A%26+ie%3A%25+mo%3A%7D+va%3A%7D+de%3A%5D+zu%3A%29+fl%3A%28+ss%3A%7C+ls%3A+js%3A%28
    2. 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

      1. 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

        1. 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

          1. 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

            1. 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

              --
              MudGuard? Siehe http://www.Mud-Guard.de/
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              1. 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

  2. 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

    --
    SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
    http://emmanuel.dammerer.at/selfcode.html
    Deshalb können Pinguine nicht fliegen:
    Was nicht fliegt kann auch nicht abstürzen
    <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
    http://againsttcpa.com