GE.ORG: Vererbung ...

Hallo!

Ich habe eine Frage an Euch ...

Warum wird bei dem folgenden Beispiel der Stil nicht weitervererbt?

<html>
<head>
<title>Titel</title>
<style type="text/css">
<!--
BODY {
 font-size: 16px;
}
.inhalt {
 font-size: 14px;
 font-style: italic;
}
-->
</style>
</head>
<body>
<table class="inhalt">
  <tr>
    <td>
    TEXT1
      <table>
 <tr>
   <td>TEXT2</td>
 </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>

--> "TEXT2" hat nicht die selbe Formatierung wie "TEXT1" (.inhalt), sondern die von BODY!

Kann man dieses Beispiel anders umsetzen, sodass die CSS-Stile weitervererbt werden?

Vielen Dank, schönen Abend & gute Nacht

GE.ORG

  1. GE.ORG

    Ich würde der neuen Tabelle auch wieder die Klasse zuweisen. Ausserdem würde ich alle Tags wieder schliessen. Ist besser und übersichtlicher.

    Probiers mal, Andre

    1. Hi,

      GE.ORG

      Ich würde der neuen Tabelle auch wieder die Klasse zuweisen.

      Ausserdem würde ich alle Tags wieder schliessen.

      Welches tag ist denn Deiner Meinung nach nicht geschlossen?

      Ersatzweise: welches Element ist denn Deiner Meinung nach nicht geschlossen?

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Andreas

        OK, du hast gewonnen. Aber die Tabelle hinter dem Text ist doch reichlich ungewohnt. Da musst du meiner Meinung nach schon was Spezielles vorhaben.

        Andre

        1. Hi,

          OK, du hast gewonnen. Aber die Tabelle hinter dem Text ist doch reichlich ungewohnt. Da musst du meiner Meinung nach schon was Spezielles vorhaben.

          Ne, muß ich nicht, ist ja nicht mein Code...

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  2. ..erstaunlich, dass bei dir in der ersten zelle "inhalt" klappen soll. bei mir hat das noch nie gefunzt. das ist eine der sachen, die ich an der css-vererbung hasse .. du musst jeder tabellenzelle die klasse jeweils zuweisen. meist funzt es wenigsten noch bei zuweisung schon im <tr> ... aber die ganze tabelle - das hat auch bei mir noch nie geklappt, keine ahnung, warum die das so komisch festgelegt haben ..

  3. hi Georg

    versuch das ganze mal ohne zwei Table in einander zuschachteln.
    ich glaube der validator ist darüber auch nicht glücklich.

    bis bis roman

    --
    P.S. manchmal wundere ich mich schon über die postings (fragen u. antworten) die man hier geboten bekommt(meine eigenen [leider] mit eingenommen)
    => ich denke mir meinen teil und ziehe das beste daraus :-)
    ss:( zu:) ls:} fo:) de:> va:) ch:] sh:( n4:° rl:( br:^ js:| ie:( fl:( mo:)
    http://emmanuel.dammerer.at/selfcode.html
    1. Hi,

      hi Georg

      versuch das ganze mal ohne zwei Table in einander zuschachteln.
      ich glaube der validator ist darüber auch nicht glücklich.

      Warum sollte er denn nicht glücklich sein?

      Innerhalb von td sind table-Elemente zulässig.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. hi hi

        jeep der validator ist zufrieden :-(( oder doch eher :-))

        ohne die verschachtelten tabellen funkt. auch das css.

        bis bis roman

        --
        P.S. manchmal wundere ich mich schon über die postings (fragen u. antworten) die man hier geboten bekommt(meine eigenen [leider] mit eingenommen)
        => ich denke mir meinen teil und ziehe das beste daraus :-)
        ss:( zu:) ls:} fo:) de:> va:) ch:] sh:( n4:° rl:( br:^ js:| ie:( fl:( mo:)
        http://emmanuel.dammerer.at/selfcode.html
  4. Hi,

    Warum wird bei dem folgenden Beispiel der Stil nicht weitervererbt?

    Weil manche Browser bei table die font-Eigenschaften nicht vererben.

    .inhalt, .inhalt * { /* ... */ }
    oder ähnliche Konstrukte sollten den gewünschten Effekt bewirken.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hallo Andreas,

      Gutes Timing ;-)

      Grüße
      Thomas

      1. Hi,

        Gutes Timing ;-)

        Abschreiber! ;-)

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Hallo,

          Gutes Timing ;-)

          Abschreiber! ;-)

          *hehe*
          Damit hätte ich sämtliche Weltrekorde gebrochen (4 sec)! ;-)
          Meine Zeit: 1065558740
          Deine Zeit: 1065558736

          Grüße
          Thomas

          1. Hi,

            Damit hätte ich sämtliche Weltrekorde gebrochen (4 sec)! ;-)
            Meine Zeit: 1065558740
            Deine Zeit: 1065558736

            Da Du an interne Daten rankommst, hast Du das sicher schon von meiner Beitrags-Vorschau abgeschrieben...

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
            1. Moin!

              Da Du an interne Daten rankommst, hast Du das sicher schon von meiner Beitrags-Vorschau abgeschrieben...

              Nein. Wenn, dann hätte er die Zeitstempel ausgetauscht und wäre ohnehin weiter vorn im Thread als du - oder du könntest gar nicht mehr ohne Freigabe als MudGuard posten. ;)

              - Sven Rautenberg

              --
              ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
              1. Hi,

                Da Du an interne Daten rankommst, hast Du das sicher schon von meiner Beitrags-Vorschau abgeschrieben...
                Nein. Wenn, dann hätte er die Zeitstempel ausgetauscht und wäre ohnehin weiter vorn im Thread als du - oder du könntest gar nicht mehr ohne Freigabe als MudGuard posten. ;)

                Vielleicht hat er ja nur lesenden Zugriff? ;-)

                cu,
                Andreas

                --
                Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
                http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  5. Hallo,

    Kann man dieses Beispiel anders umsetzen, sodass die CSS-Stile weitervererbt werden?

    .inhalt, .inhalt * {
     font-size: 14px;
     font-style: italic;
    }

    Grüße
    Thomas

  6. An alle die bisher (Antworten zu meiner Frage! *g*) gepostet haben:
    *Vielen Dank für die rasche Hilfe!*

    .inhalt, .inhalt * {
     ...
    }
    hat übrigens fein geklappt!
    Und für die, die's interessiert: Ich brauche diese Tabellenstruktur, da ich keine Frames verwenden will! ;-)

    Mit freundlichen Grüßen,

    GE.ORG

    1. Hallo,

      .inhalt, .inhalt * {
      ...
      }
      hat übrigens fein geklappt!

      Frage an GE.ORG? Mit welchen Browsern hat das fein geklappt?

      Deine ursprüngliche Version funktionierte bei mir, wenn ich in _beiden_ table-tags die Klasse angegeben habe: <table class="inhalt">
      NN 7.1, Mozilla 1.4 und IE 5.5 zeigen dann alles wie gewünscht an, der NN 4.75  allerdings nicht.

      Daran ändert sich auch nichts, wenn ich in beiden table-tags angebe:
      <table class="inhalt inhalt *">
      Oder habe ich hier die zwei Klassen falsch eingebunden?
      Eigentlich doch nicht. Der alte NN 4.x kommt wohl mit der Vererbung nicht klar. Für welche Browser ist denn die Klasse .inhalt * sinnvoll?

      Grüsse aus Neubrandenburg
      erika

      --
      Hauptsache dem Hund geht's gut
      1. Hallo,

        <table class="inhalt inhalt *">
        Oder habe ich hier die zwei Klassen falsch eingebunden?

        Ja, kreuzfalsch.

        Es handelt sich auch nicht um "zwei Klassen".
        Lies mal http://selfhtml.teamone.de/css/formate/zentrale.htm
        von Anfang bis Ende durch.

        .inhalt * { }
        definiert CSS-Anweisungen fuer beliebige Elemente,
        die in einem Element der Klasse "inhalt" enthalten sind.

        btw: Dass der alte Netscape 4.x massiv Probleme mit der Vererbung
        hat, ist altbekannt...

        Gruesse,

        Thomas

        1. Hallo,

          Es handelt sich auch nicht um "zwei Klassen".
          Lies mal http://selfhtml.teamone.de/css/formate/zentrale.htm
          von Anfang bis Ende durch.

          Das lese ich immer mal wieder, habe eben auch darin gelesen, habe aber  keine solche Konstruktion gefunden:
          .inhalt, .inhalt * {.......}
          Habe ich das überlesen?
          Ich habe gelernt:
          h1, h1, p {.....} Die CSS-Anweisung gilt für mehrere HTML-Elemente
          Ich habe gelernt: Klassenselektoren beginnen mit einem .

          Demzufolge habe ich die o.a. Konstruktion so gedeutet, dass die durch Kommata getrennte CSS-Anweisung für zwei Klassen gilt und habe zwei Klassen im table-Element eingebunden. Allerdings habe ich so etwas noch nie gesehen. Ich will gern glauben, dass das kreuzfalsch ist.

          .inhalt * { }
          definiert CSS-Anweisungen fuer beliebige Elemente,
          die in einem Element der Klasse "inhalt" enthalten sind.

          ??? Verstehe ich leider nicht.
          Oder soll das heißen:....definiert Anweisungen fuer beliebige Elemente, die in einem Element _mit_ der Klasse "inhalt" enthalten sind.

          Und bezogen auf das von GE.ORG gepostete Ausgangsbeispiel:In welchem HTML-Element wäre nun welche CSS-Anweisung einzubinden?

          Viele Grüsse
          erika

          btw: Dass der alte Netscape 4.x massiv Probleme mit der Vererbung
          hat, ist altbekannt...

          Gruesse,

          Thomas

          --
          Hauptsache dem Hund geht's gut
          1. Hallo Erika,

            Ich habe gelernt:
            h1, h1, p {.....} Die CSS-Anweisung gilt für mehrere HTML-Elemente
            Ich habe gelernt: Klassenselektoren beginnen mit einem .

            Was Du offenbar noch nicht begriffen hattest, ist die Verschachtelung:
            http://selfhtml.teamone.de/css/formate/zentrale.htm#verschachtelte_elemente

            Und dass der Stern * als Platzhalter gebraucht werden kann.
            Das steht im Abschnitt
            http://selfhtml.teamone.de/css/formate/zentrale.htm#klassen

            .inhalt * { }
            definiert CSS-Anweisungen fuer beliebige Elemente,
            die in einem Element der Klasse "inhalt" enthalten sind.
            ??? Verstehe ich leider nicht.
            Oder soll das heißen:....definiert Anweisungen fuer beliebige Elemente, die in einem Element _mit_ der Klasse "inhalt" enthalten sind.

            Ja. Du verstehst es richtig - fuer mich bedeutet es mit und ohne
            das Woertchen "mit" das selbe.

            Beispiel:

            <table class="inhalt">
              <tr>
                 <td>Dieses Element ist betroffen</td>
                 <td><p>Dieses (theoretisch) auch.</p></td>
                 <td>Und auch dieses.</td>
              </tr>
            </table>

            Und bezogen auf das von GE.ORG gepostete Ausgangsbeispiel:In welchem HTML-Element wäre nun welche CSS-Anweisung einzubinden?

            Nur im "aeussersten", also in TABLE.
            Alle andern Elemente, die (in der HTML-Verschachtelung)
            innerhalb dieser Tabelle liegen, sind mit
            .inhalt * {}
            automatisch miterfasst.
            (Sofern die Browser die Vererbung korrekt umsetzen.)

            Ist jetzt alles klar?
            Ein Lesetip fuer CSS:
            http://www.jendryschik.de/wsdev/einfuehrung/css/index.html
            Fuer Selektoren insbesondere:
            http://www.jendryschik.de/wsdev/einfuehrung/css/syntax.html

            Freundliche Gruesse,

            Thomas

          2. Moin!

            Das lese ich immer mal wieder, habe eben auch darin gelesen, habe aber  keine solche Konstruktion gefunden:
            .inhalt, .inhalt * {.......}
            Habe ich das überlesen?

            Ja. Im Detail gleich mehr.

            Ich habe gelernt:
            h1, h1, p {.....} Die CSS-Anweisung gilt für mehrere HTML-Elemente

            Korrekt. Das, was da vor den geschweiften Klammern steht, nennt man den Selektor. Bzw. _die_ Selektoren. Die von dir gelernte Regel: Mehrere Selektoren werden durch Komma getrennt, und für alle Elemente in dieser Liste gilt die nachfolgende Style-Definition gleichermaßen. Gerade so, als würde man stattdessen
            h1 { Definition }
            h2 { Definition }
            p  { Definition }
            schreiben. Man spart sich das dreimalige Abtippen der Definition und muß Änderungen auch nur einmal machen.

            Ich habe gelernt: Klassenselektoren beginnen mit einem .

            Korrekt. Bedenke: Alles, was vor der geschweiften Klammer steht, ist ein Selektor. Bei "h1 { ... }" ist der Selektor "h1". Bei Klassen ist der Selektor ".klasse", bei IDs ist er "#idname".

            Allerdings kann der Selektor auch komplexer sein, er muß nicht nur ein einziges Element haben.

            In CSS1 gilt beispielsweise (das wirst du vielleicht nicht mehr so gelernt haben:
            p b {...}

            Das selektiert alle <b>-Elemente, die sich innerhalb eines <p> befinden. Also beispielsweise keine, die <h1><b>...</b></h1> sind.

            Das alles kombiniert:

            .inhalt, .inhalt * {...}

            Eine Liste von zwei Selektoren, die gleichartig formatiert werden.

            Selektor 1 ist ".inhalt". Also alle Elemente dieser Klasse.

            Selektor 2 ist ".inhalt *". Also alle Elemente ("*"), die in einem Element der  Klasse ".inhalt" enthalten sind. "*" steht für "alles".

            Demzufolge habe ich die o.a. Konstruktion so gedeutet, dass die durch Kommata getrennte CSS-Anweisung für zwei Klassen gilt und habe zwei Klassen im table-Element eingebunden. Allerdings habe ich so etwas noch nie gesehen. Ich will gern glauben, dass das kreuzfalsch ist.

            Nein, diese Überlegung ist falsch. Natürlich kannst du zwei Klassen in einem HTML-Element einbinden:

            .red { font-color:red; }
            .small { font-size:smaller; }

            <p class="small red">Klein und rot</p>
            <p class="small">Nur klein, nicht rot</p>

            Das hat aber nur dann Sinn, wenn es wirklich zwei unterschiedliche Klassen sind, die sich sozusagen sinnvoll zusammenaddieren lassen.

            .inhalt * { }
            definiert CSS-Anweisungen fuer beliebige Elemente,
            die in einem Element der Klasse "inhalt" enthalten sind.
            ??? Verstehe ich leider nicht.
            Oder soll das heißen:....definiert Anweisungen fuer beliebige Elemente, die in einem Element _mit_ der Klasse "inhalt" enthalten sind.

            Genau.

            - Sven Rautenberg

            --
            ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
            1. Mahlzeit,

              danke an Tim, Thomas und Sven.

              Die betreffenden Abschnitte bei SelfHtml habe ich gelesen und auch das Skript von Michael Jendryschik ist mir nicht unbekannt.
              Gerade dieser Tage habe ich mich wieder einmal recht ausführlich mit den Selektoren beschäftigt, auch mit den verschachtelten Formatierungen. Ich weiß auch dass der Stern * als Platzhalter dient.

              Trotzdem konnte ich diese Anweisung .inhalt, .inhalt * {...} nicht deuten. Ich stand davor wie die Kuh vor dem neuen Tor!
              Ihr habt Euch alle drei wirklich redlich Mühe gegeben, mir das zu erklären.
              Ich denke mal, dass ich das jetzt verstanden habe.

              Das Beispiel von GE.ORG habe ich in 5 Varianten durchgespielt.
              Tabellen        Selektoren    Klassen-       Richtige Darstellung
              verschachtelt                 elemente       in den Browsern
              nein                1            1           Mozilla, NN 7.1, IE 5.5
              ja                  1            1           Mozilla, NN 7.1
              ja                  1            2           Mozilla, NN 7.1, IE 5.5
              ja                  2            1           Mozilla, NN 7.1
              ja                  2            2           Mozilla, NN 7.1, IE 5.5

              Ergebnis: bei Mozilla 1.4 und beim NN 7.1 funktioniert die Vererbung bei verschachtelten Tabellen, auch wenn nur 1 Selektor .inhalt deklariert wurde und wenn nurim ersten table-Element class="inhalt" eingefügt wurde.
              Damit auch der IE 5.5 alles wie gewünscht anzeigt, muss in beiden table-Elementen class="inhalt" angegeben werden, auch wenn zwei Selektoren deklariert wurden.
              Im NN 4.75 funktionieren die Beispiele nicht - wie zu erwarten war.

              Meine Schlußfolgerung:
              Für dieses Beispiel wird eigentlich  die Anweisung mit den zwei Selektoren .inhalt, .inhalt * {....} gar nicht gebraucht.

              Grüsse aus Neubrandenburg
              erika

              --
              Hauptsache dem Hund geht's gut
              1. Hallo Erika,

                Danke fuer's Austesten.

                Damit auch der IE 5.5 alles wie gewünscht anzeigt, muss in beiden table-Elementen class="inhalt" angegeben werden, auch wenn zwei Selektoren deklariert wurden.

                Es erstaunt mich, dass der MS IE 5.5 die Verschachtelung/Vererbung
                so schlecht beherrscht.

                Für dieses Beispiel wird eigentlich  die Anweisung mit den zwei Selektoren .inhalt, .inhalt * {....} gar nicht gebraucht.

                Ich nehme mal an, dass dieser Vorschlag "aus dem hohlen Bauch"
                gemacht wurde.
                Einen ebensolchen (ungetesteten) Vorschlag mache ich jetzt noch:
                .inhalt, .inhalt table tr td { }
                Jaja, fuer anstaendige Browser voellig uebertrieben,
                aber vielleicht funktioniert es ja und hilft somit GE.ORG...

                Uebrigens: Mozilla 1.4 und Netscape 7.1 duerften, was das
                Rendering (d.h. die optische Anzeige) angeht, ziemlich aehnlich sein.
                (Stand der Gecko-Engine, sichtbar via Hilfe -> Ueber Mozilla/Netscape.)

                Interessant waere noch, zu wissen, wie ein aktueller Opera (7.1/7.2)
                in diesem Fall mit der Vererbung klarkommt.

                Gruesse,

                Thomas

                1. Hallo Thomas,

                  Einen ebensolchen (ungetesteten) Vorschlag mache ich jetzt noch:
                  .inhalt, .inhalt table tr td { }
                  Jaja, fuer anstaendige Browser voellig uebertrieben,
                  aber vielleicht funktioniert es ja und hilft somit GE.ORG...

                  Komme eben pitschnaß aus dem Garten, habe aber Deinen Vorschlag gleich noch mal mit dem IE 5.5 getestet:
                  Es ändert sich nichts. class="inhalt" muss bei der Verschachtelung in beiden table-Elementen angegeben werden, dann geht's.
                  Vielleicht kann es der IE 6.0 besser?

                  Die Vererbung ist wohl ein kompliziertes Thema.

                  Grüsse,
                  erika

                  --
                  Hauptsache dem Hund geht's gut
                  1. Hallo,

                    Komme eben pitschnaß aus dem Garten, habe aber Deinen Vorschlag gleich noch mal mit dem IE 5.5 getestet:
                    Es ändert sich nichts. class="inhalt" muss bei der Verschachtelung in beiden table-Elementen angegeben werden, dann geht's.

                    Das ist wirklich schwer vorzustellen.
                    Könntest du dein HTML hier posten?

                    Grüße
                    Thomas

                    1. Guten Morgen thomas,

                      Das ist wirklich schwer vorzustellen.
                      Könntest du dein HTML hier posten?

                      Gern. Bin aber sehr in Eile, muss zwei Tage verreisen.
                      Solltest Du Fehler finden, wirst Du sie mir ankreiden!

                      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"         "http://www.w3.org/TR/html4/loose.dtd">
                      <html>
                      <head>
                      <title>Vererbung in Tabellen</title>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                      <style type="text/css">
                      <!---
                      body {
                       font-size: 18px;
                       color:red;
                      }
                      .inhalt, .inhalt tab tr td  {
                       font-size: 14px;
                       font-style: italic;
                       color:blue;
                      }
                      --->
                      </style>
                      </head>
                      <body>
                      <p>Wie funktioniert die Vererbung in einer Tabelle? Roter Text mit 18px.</p>
                      <table class="inhalt">
                        <tr><td>Das ist Text 1. Blauer Text, kursiv, 14px.
                        <table><tr><td>Das ist Text 2. Blauer Text, kursiv, 14px.</td> </tr></table>
                        </td></tr>
                        </table>
                      <p>Manche Browser vererben die font-Eigenschaften nicht.<br>
                      Verschachtelte Tabelle. 2 Selektoren. 1 x class="inhalt". Beispiel funktioniert im Mozilla und im NN 7.1, aber nicht im IE 5.5.</p>
                      </body>
                      </html>
                      Das Beispiel funktioniert auch im IE 5.5, wenn im zweiten <table>
                      auch class="inhalt" eingefügt wird.
                      Und genau so ist es auch bei der CSS-Anweisung
                      .inhalt, .inhalt * {...}

                      Tschüss, ich muss los. Ich kann erst wieder morgen das Forum besuchen.
                      erika

                      --
                      Hauptsache dem Hund geht's gut
                      1. Hi,

                        Solltest Du Fehler finden, wirst Du sie mir ankreiden!

                        Gerne. s.u.

                        .inhalt, .inhalt tab tr td  {

                        Vielleicht solltest Du es mal mit dem HTML-Element table im Selektor probieren statt mit einem nicht-HTML-Element tab.

                        cu,
                        Andreas

                        --
                        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
                        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
                        1. Hi Andreas,

                          .inhalt, .inhalt tab tr td  {

                          Vielleicht solltest Du es mal mit dem HTML-Element table im Selektor probieren statt mit einem nicht-HTML-Element tab.

                          Du hast recht, das war ein Schussligkeit von mir. Ich war in Eile und habe das übersehen. Aber ob Du es glaubst oder nicht: Ich hatte es noch schnell über die beiden Validatoren laufen lassen -
                          der HTML-Validator hat nicht gemeckert und auch der CSS-Validator nicht.

                          Grüsse aus Neubrandenburg
                          erika

                          --
                          Hauptsache dem Hund geht's gut
                          1. Hi,

                            .inhalt, .inhalt tab tr td  {
                            Vielleicht solltest Du es mal mit dem HTML-Element table im Selektor probieren statt mit einem nicht-HTML-Element tab.
                            der HTML-Validator hat nicht gemeckert und auch der CSS-Validator nicht.

                            Der HTML-Validator kümmert sich nicht um das CSS.
                            Und selbstverständlich ist
                            .inhalt tab tr td
                            ein korrekter CSS-Selektor.

                            CSS ist ja nicht auf die Anwendung auf HTML eingeschränkt, sondern kann z.B. auch mit beliebigem XML benutzt werden.
                            Also ist das Auftreten eines  Elementnamens, den es in HTML nicht gibt, kein CSS-Fehler.

                            cu,
                            Andreas

                            --
                            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
                            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
                      2. Hallo,

                        Das ist wirklich schwer vorzustellen.
                        Könntest du dein HTML hier posten?
                        Gern.

                        Ich habe den folgenden Code jetzt unter IE 5.0 getestet, die Vererbung funktioniert problemlos.

                        Grüße
                        Thomas
                        -----------------------------
                        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                        "http://www.w3.org/TR/html4/loose.dtd">
                        <html>
                        <head>
                        <title>Vererbung in Tabellen</title>
                        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                        <style type="text/css">
                        <!---
                        body {
                         font-size: 18px;
                         color:red;
                        }
                        .inhalt, .inhalt table tr td  {
                         font-size: 14px;
                         font-style: italic;
                         color:blue;
                        }
                        --->
                        </style>
                        </head>
                        <body>
                        <p>Wie funktioniert die Vererbung in einer Tabelle? Roter Text mit
                        18px.</p>
                        <table class="inhalt">
                          <tr>
                                <td>Das ist Text 1. Blauer Text, kursiv, 14px.
                                        <table>
                                                <tr>
                                                        <td>Das ist Text 2. Blauer Text, kursiv, 14px.</td>
                                                </tr>
                                        </table>
                                </td>
                          </tr>
                        </table>
                        <p>Manche Browser vererben die font-Eigenschaften nicht.<br>
                        Verschachtelte Tabelle. 2 Selektoren. 1 x class="inhalt". Beispiel
                        funktioniert im Mozilla und im NN 7.1, aber nicht im IE 5.5.</p>
                        </body>
                        </html>

                        1. Hallo Thomas,

                          Ich habe den folgenden Code jetzt unter IE 5.0 getestet, die Vererbung funktioniert problemlos.

                          Du hast recht, sie funktioniert mit dem _richtigen_ Code:

                          .inhalt, .inhalt table tr td  {...}

                          Ich hatte vorgestern in der Eile statt table nur tab geschrieben!
                          Und das konnte/wollte  auch der schlamperte IE 5.5 nicht dulden.
                          (Eigenartigerweise hatte das aber der Validator nicht beanstandet, auch nicht der CSS-Validator).

                          Nun habe ich  heute wieder gegrübelt: Wenn dieser Code funktioniert, warum funktioniert dann nicht der Code .inhalt, .inhalt * {...}?

                          Dieser Code funktioniert natürlich auch, ich hatte nur schlicht und einfach den Punkt vor dem zweiten Selektor nicht notiert. Das ist nun ein unverzeihlicher Fehler, den ich nicht mit Eile entschuldigen kann.

                          Ich ärgere und schäme mich, aber passiert ist passiert. Schlußfolgerung: Wenn ein Code logischerweise funktionieren müsste, aber nicht funktioniert, sollte man seine Fehler suchen (oder vom Validator suchen lassen). Ich gelobe Besserung  - bis zum nächsten Mal ;-)

                          Nochmals vielen Dank - ich habe wieder was gelernt.

                          Grüsse aus Neubrandenburg
                          erika

                          --
                          Hauptsache dem Hund geht's gut
              2. Hallo,

                danke an Tim, Thomas und Sven.
                Ich denke mal, dass ich das jetzt verstanden habe.

                Das Beispiel von GE.ORG habe ich in 5 Varianten durchgespielt....

                Ergebnis: bei Mozilla 1.4 und beim NN 7.1 funktioniert die Vererbung bei verschachtelten Tabellen, auch wenn nur 1 Selektor .inhalt deklariert wurde und wenn nur im ersten table-Element class="inhalt" eingefügt wurde.
                Damit auch der IE 5.5 alles wie gewünscht anzeigt, muss in beiden table-Elementen class="inhalt" angegeben werden, auch wenn zwei Selektoren deklariert wurden.

                Die letzte Aussage ist falsch, ist falsch, ist falsch!
                Ich hatte einen Punkt vor dem zweiten Selektor vergesssen. Unverzeihlich!
                Wenn man alles richtig schreibt, funktioniert die Vererbung auch im IE 5.5.

                Meine Schlußfolgerung:
                Für dieses Beispiel wird eigentlich  die Anweisung mit den zwei Selektoren .inhalt, .inhalt * {....} gar nicht gebraucht.

                Falsch, sie wird doch gebraucht, damit die Vererbung im IE 5.5 funktioniert. Man muss nur alles richtig notieren!

                Grüsse aus Neubrandenburg
                erika»»

                --
                Hauptsache dem Hund geht's gut
      2. Hallo Erika,

        Daran ändert sich auch nichts, wenn ich in beiden table-tags angebe:
        <table class="inhalt inhalt *">
        Oder habe ich hier die zwei Klassen falsch eingebunden?

        Du hast hier tatsächlich einen kleinen Denkfehler. Es genügt schon aus, nur
        <table class="inhalt"> zu schreiben. Der CSS Selektor bezieht sich nämlich
        nicht auf eine zweite Klasse sondern auf die Unterelemente von .inhalt:

        .inhalt, .inhalt * { /* .. */ }

        sind zwei Selektoren, die mit einem Komma aneinander gereiht sind. Der erste,
        .inhalt, bezieht sich auf Elemente der Klasse »inhalt«. Der zweite ist ein
        Selektor, der sich auf Vererbung bezieht. Er meint alle Elemente (*), die
        sich unterhalb eines Elementes mit der Klasse »inhalt« befinden.

        http://selfhtml.teamone.de/css/formate/zentrale.htm#verschachtelte_elemente

        Verständlich genug erklärt? :-)

        Tim

  7. Hi alle zusammen!

    ... und das sind ja schon beachtlich viele!
    ... dürfte also ein komplexes Thema sein, diese Verschachtelung, und vielen nicht so ganz einleutend.

    Warum ich die Formatierung so wählen muss hat den folgenden Grund:
    Sie ist die Struktur für eine HTML-Seite, die per CMS gepflegt werden soll. Da diese Seite eben aus Tabellenaufgebaut ist, gibt es eine Tabelle, in der der CMS-gepflegte Inhalt dann stehen soll, also:

    <table class="inhalt">
     <tr>
      <td>
      [...CMS-Inhalt...]
      </td>
     </tr>
    </table>

    Nun kann ich aber den Editoren nicht zumuten, jeder Tabelle, die sie im Inhalt anlegen, wieder die Klasse ".inhalt" zuzuweisen -- es muss also automatisch funktionieren.

    Nachdem ich nun also brav das CSS auf

    .inhalt, .inhalt * {
     ...
    }

    abgeändert habe, werden allerdings ein paar andere Styles nicht richtig angezeigt. So gibt es beispielsweise Probleme mit <h1>-Tags die auch gleichzeitig Links sind, oder Links, die per

    <p align="center"><a>...</a></p>

    zentriert werden ... hmmm ...

    Ist wohl scheinbar nicht ganz so einfach, CMS-Seiten per CSS zu stylen! ;-)
    Aber ich hab wohl noch viel zu wenig Erfahrung auf dem Gebiet, die muss ich wohl noch sammeln? Irgendwelche Tipps? *g*

    Schönen Abend noch!

    Euer

    GE.ORG

    1. Hallo,

      Nachdem ich nun also brav das CSS auf

      .inhalt, .inhalt * {
       ...
      }

      abgeändert habe, werden allerdings ein paar andere Styles nicht richtig angezeigt. So gibt es beispielsweise Probleme mit <h1>-Tags die auch gleichzeitig Links sind, oder Links, die per

      Es hängt sicherlich auch von den Brwoser ab, abr du kannst natürlich sowas versuchen

      .inhalt, .inhalt h1, .inhalt h1 a:link  ...etc.
      oder du gibst der Zelle in dem der CMS-Inhalt kommt eine id und dann versuchst du darüber zu steuern
      #inhaltszelle * {}   etc.

      Grüße
      Thomas