Lspreee: Vererbung table zu td verhindern

Ich werd irre. Ich kriege folgendes nicht hin:

habe per css einer klasse für <table> eine background-color zugewiesen.
etwa so:

  
<table class=tbln
  
.tbln  {background-color:#ebebeb

jetzt habe ich eine! td, die diese farbe nicht haben soll, sonder gar keine!!!
klar kann ich der eine farbe zuordnen, aber wenn ich es nicht mache, nimmt er
die der tabelle (vererbung).

........
was nicht in frage kommt:
die background-color für die td definieren.

  
td {background-color:#ebebeb

Da hängen dann zuviele mit drin, die die farbe gar nicht bekommen sollen.

  1. eine klasse für die zelle: <td class="ausnahme"> wobei ausnahme eine sinnvolle beschreibung sein solle "fehler", "hinweis", "umsatz" usw

    dann kannst du sie bequem per css selektieren td.ausnahme { background: blue; }

    1. @suit: ick wees, aber es soll ja eben keine farbe haben.

      dann kannst du sie bequem per css selektieren td.ausnahme { background: blue; }

      @chrisB
      Du hast mein Problem verstanden. Bin gar nicht darauf gekommen, dass es durchscheint...

      Also, es gibt keine Möglichkeit, mit einer extra definierten Transparenz (scheiss Beschreibung) durch den hinterliegenden table-Hintergrund durchzuscheinen auf den <body>-Hintergrund.

      Dann kaeme nur noch in Frage, nur fuer alle anderen TD einen Hintergrund zu definieren, und fuer die spezielle TD und die Table selber nicht.

      Darauf bin ich auch gekommen, bedeutet aber viel ARbeit, grr. Wenigstens bin ich nicht zu doof gewesen um eine Lösung zu finden:)

      1. @chrisB
        Du hast mein Problem verstanden. Bin gar nicht darauf gekommen, dass es durchscheint...

        scheint so als hätte ichs nicht verstanden :)

        Also, es gibt keine Möglichkeit, mit einer extra definierten Transparenz (scheiss Beschreibung) durch den hinterliegenden table-Hintergrund durchzuscheinen auf den <body>-Hintergrund.

        nein, gibts leider nicht - du kannst der tabellenzelle nur den hintergrund geben, den auch body hat - bei einem hintergrundbild wirds allerdings kompliziert

        1. scheint so als hätte ichs nicht verstanden :)

          Nee doch. War schon genau richtig so, ich habe es jetzt so gemacht (generelle Farbe für class=tbln für tabellen rausgenommen und neue klasse für normale td's ausser dat eine [..doofe ding])

          hat auch gar nicht weh getan    :/

          SO: und danke für die schnelle hilfe.

          1. Moin!

            scheint so als hätte ichs nicht verstanden :)

            Nee doch. War schon genau richtig so, ich habe es jetzt so gemacht (generelle Farbe für class=tbln für tabellen rausgenommen und neue klasse für normale td's ausser dat eine [..doofe ding])

            hat auch gar nicht weh getan    :/

            Naja, vermutlich hat es doch weh getan, weil du die Klasse (einmal) aus der Table entfernt hast, um sie dann in alle existierenden TDs einzufügen.

            Das ist ziemlich umständlich, der einfachere Weg wäre gewesen, die Macht von CSS zu nutzen, und folgendes zu tun:

            <table class="tbln">  
              <tr>  
                <td>Mit Hintergrund</td>  
                <td class="ohne">ohne Hintergrund</td>  
              </tr>  
            </table>
            

            Also ganz simpel nur DIE Zelle mit der Extraklasse versehen, die sich von allen anderen abheben soll.

            Und im CSS hattest du vorher:

            body { background-color:white; } /* Zeile 1 */  
            .tbln { background-color:red; } /* Zeile 2 */
            

            Von diesem Zustand aus wäre folgendes eine Option bei einfarbigen Hintergrundfarben:

            body, td.ohne { background-color: white; } /* Zeile 1 */
            anstelle der bisherigen Zeile 1.

            Hat den Vorteil: Änderst du die Hintergrundfarbe für den Body, wirkt das auch direkt auf die besondere Zelle, ohne die Farbe zweimal angeben zu müssen. Solche Aufzählungen von mehreren HTML-Elementen, für die die gleichen Formatierungen gelten sollen, trennst du einfach mit dem Komma.

            Dieser Trick funktioniert nicht bei Hintergrundbildern. Da mußt du den Tabellenhintergrund transparent lassen, jeder Zelle der Tabelle einen farbigen Hintergrund geben, und der besonderen Zelle wieder nur einen transparenten Hintergrund.

            Mit demselben (!) HTML würde das in CSS so gehen:

            body { background-color:white; } /* Zeile 1 */  
            .tbln td { background-color:red; } /* Zeile 2 */  
            .tbln td.ohne {background-color:transparent; } /* Zeile 3*/
            

            Die Zeile zwei wirkt jetzt nicht mehr auf ein HTML-Element mit der Klasse "tbln", sondern auf ein HTML-Element <td>, welches sich innerhalb eines HTML-Elements mit der Klasse "tbln" befindet. Das gilt für alle TDs in deiner Tabelle - auch für die besondere Zelle.

            Deshalb gibts obendrauf noch eine weitere Regel nur für diese Zelle: Ein <td> mit der Klasse "ohne", welches sich in einem HTML-Element mit der Klasse "tbln" befindet, hat transparenten Hintergrund. Dadurch scheint die Farbe oder das Bild dessen, was sich dahinter befindet, automatisch durch.

            Mehr zu dieser "Selektor" genannten Angabe, auf was die CSS-Angabe wirkt, steht hier: http://de.selfhtml.org/css/formate/zentrale.htm#verschachtelte_elemente

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
            1. Also ganz simpel nur DIE Zelle mit der Extraklasse versehen, die sich von allen anderen abheben soll.

              Wow, super, ich werd....

              Nett gemeint, aber white ist auch ne Farbe :(

              body, td.ohne { background-color: white; } /* Zeile 1 */

              Dieser Trick funktioniert nicht bei Hintergrundbildern. Da mußt du den Tabellenhintergrund transparent lassen, jeder Zelle der Tabelle einen farbigen Hintergrund geben, und der besonderen Zelle wieder nur einen transparenten Hintergrund.

              Ja, den Fall hatte ich doch. Und das hier:

              body { background-color:white; } /* Zeile 1 */

              .tbln td { background-color:red; } /* Zeile 2 /
              .tbln td.ohne {background-color:transparent; } /
              Zeile 3*/

                
              geht eben nur, wenn du die farbe nicht zur tbln packst, sondern zur td. thats what we found längst out. daher der aufwand, den ich doch machen musste.  
                
              Trotzdem Danke für Deine Antwort. 
              
              1. Moin!

                body { background-color:white; } /* Zeile 1 */

                .tbln td { background-color:red; } /* Zeile 2 /
                .tbln td.ohne {background-color:transparent; } /
                Zeile 3*/

                
                >   
                > geht eben nur, wenn du die farbe nicht zur tbln packst, sondern zur td. thats what we found längst out. daher der aufwand, den ich doch machen musste.  
                  
                Der Aufwand in "meiner" Lösung besteht aber darin, nur die eine TD-Zelle mit einer Klasse zu versehen und noch ein wenig Formatierung im CSS zu haben, genau die drei Zeilen, die du da siehst.  
                  
                Das, was du bislang geschildert hast, hatten mich den Eindruck gewinnen lassen, dass du ALLE anderen TD-Zellen ebenfalls mit einer Klasse versehen hast - und das ist natürlich aufwendig, aber auch vollkommen überflüssig.  
                  
                 - Sven Rautenberg
                
                -- 
                "Love your nation - respect the others."
                
      2. @@Lspreee:

        Darauf bin ich auch gekommen, bedeutet aber viel ARbeit, grr.

        ?? Die worin besteht?

        Allen 'th'/'td'-Elementen einen Hintergrund zu verpassen ist eine Regel; bestimmten 'th'/'td'-Elementen einen anderen Hintergrund zu verpassen ist eine zweite.

        Zu viel Arbeit?

        Live long and prosper,
        Gunnar

        --
        Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
  2. Hi,

    habe per css einer klasse für <table> eine background-color zugewiesen.

    jetzt habe ich eine! td, die diese farbe nicht haben soll, sonder gar keine!!!
    klar kann ich der eine farbe zuordnen, aber wenn ich es nicht mache, nimmt er
    die der tabelle (vererbung).

    Das hat absolut nichts mit Vererbung im Sinne von CSS zu tun.

    Wenn du der TD keinen Hintergrund gibst, dieser also transparent bleibt, dann scheint logischerweise das durch, was dahinter liegt - also erst mal der Hintergrund der Table.

    was nicht in frage kommt:
    die background-color für die td definieren.

    Dann kaeme nur noch in Frage, nur fuer alle anderen TD einen Hintergrund zu definieren, und fuer die spezielle TD und die Table selber nicht.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
  3. Tachchen!

    Also irgendwie musst du die Zelle individualisieren können.
    Das kann z.B. durch eine Klasse passieren.

    Letztlich wird - zumindest mir - aus deiner Beschreibung aber auch das
    Problem nicht gänzlich klar.

    Gruß

    Die schwarze Piste

    --
    ie:{ fl:( br:^ va:) ls:# fo:) rl:( n4:& ss:{ de:] js:| ch:? mo:) zu:$
    unbezahlbare Fotografie