bleibert: Tabelle: COL mag kein ALIGN?

Hallo!

Ich versuche gerade, in einer großen Tabelle Spalten (vielmehr deren Inhalt) unterschiedlich auszurichten. Die Breitenzuweisung über COLGROUP und COL funktioniert, aber die unterschiedliche Ausrichtung klappt weder direkt über ALIGN, noch indirekt über ein Universalattribut CLASS mit entsprechender CSS Eigenschaft. Ist das normal?

Gibt es sonst eine Möglichkeit, ganze Spalten unterschiedlich auszurichten? Ich möchte nur ungern in mehreren hundert Zeilen jeweils die gleichen Zellen formatieren.

Viele Grüße,
Dennis.

  1. Om nah hoo pez nyeetz, bleibert!

    Ich versuche gerade, in einer großen Tabelle Spalten (vielmehr deren Inhalt) unterschiedlich auszurichten. Die Breitenzuweisung über COLGROUP und COL funktioniert, aber die unterschiedliche Ausrichtung klappt weder direkt über ALIGN, noch indirekt über ein Universalattribut CLASS mit entsprechender CSS Eigenschaft. Ist das normal?

    Nein.

    Gibt es sonst eine Möglichkeit, ganze Spalten unterschiedlich auszurichten?

    Ja.

    Du machst offensichtlich etwas falsch, ohne Kenntnis der Seite lässt sich leider nicht sagen, was.

    Matthias

    --
    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Kamas und Kamasutra.

    1. Hallo,

      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Kamas und Kamasutra.

      suchst du noch was für Q?
      Quad <-> Quadflieg

      Qruß
      Qalk

      1. Om nah hoo pez nyeetz, Tabellenkalk!

        suchst du noch was für Q?
        Quad <-> Quadflieg

        Immer. Vielleicht besser Quadarra oder Quaddel als ein mir bis dato völlig unbekannter Theaterschauspieler. Danke für den Denkanstoß.

        Matthias

        --
        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Ei und Eichel.

        1. suchst du noch was für Q?
          Quad <-> Quadflieg

          Quark - Quarks ?

          Gruß H.

        2. Hallo,

          Immer. Vielleicht besser Quadarra oder Quaddel als ein mir bis dato völlig unbekannter Theaterschauspieler. Danke für den Denkanstoß.

          mit diesem fliegenden Quad passt dann eigentlich doch nur ein Quadflieg als Gegenstück, oder?

          Gruß
          Kalk

      2. Om nah hoo pez nyeetz, Tabellenkalk!

        Quad <-> Quadflieg

        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Quad und Quadflieg.

        Matthias

        --

    2. Hallo Matthias!

      ...Ist das normal?

      Nein.

      Mist. Dann muss wohl irgendwo der Wurm drin sein. Das ist meine Tabelle:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
      <html>  
      <head>  
        <title>Minolta Manual Lens List</title>  
        <link rel="stylesheet" type="text/css" href="lens.css">  
        <script type="text/javascript">counter = 1</script>  
      </head>  
      <body>  
      <table>  
        <colgroup>  
        <col width="30">  
        <col width="180" align="left">  
        <col width="70">  
        <col width="50">  
        <col width="40">  
        <col width="30">  
        <col width="30">  
        <col width="80">  
        <col width="80">  
        <col width="40">  
        <col width="90">  
        <col width="50">  
        <col width="40">  
        <col width="50">  
        <col width="130">  
        <col width="510" class ="left">  
        </colgroup>  
        
        <tbody>  
          <tr>  
            <td><a name="75"></a><script type="text/javascript">document.write( counter++ )</script></td>  
            <td class="mc">MC Fish-Eye Rokkor(-X)</td>  
            <td class="end big" rowspan="5">7.5</td>  
            <td class="end med" rowspan="5">4</td>  
            <td class="mc">22</td>  
            <td class="mc">12</td>  
            <td class="mc">8</td>  
            <td class="mc">&mdash;</td>  
            <td class="mc">&mdash;</td>  
            <td class="mc">fixed</td>  
            <td class="mc">68x63</td>  
            <td class="mc">360</td>  
            <td class="mc">1975</td>  
            <td class="mc">MC-X</td>  
            <td>501-100 (-300)</td>  
            <td rowspan="3">Filters: 1A-FLD-Y52-R60-80B-85</td>  
          </tr>  
      ...
      

      Und das mein CSS (auf das relevante gekürzt):

      ...  
      body {  background-color:white;  
         }  
      table { position: absolute;  
      	top: 0px;  
      	left: 10px;  
      	width: 1500px;  
      	text-align: center;  
      	vertical-align: middle;  
      	border: 1px solid black;  
      	border-spacing: 0px;  
      	border-collapse: collapse;  
      	table-layout: fixed;  
         }  
      td { 	font-family: Verdana,sans-serif;  
      	font-size: 0.5em;  
      	background-color: rgb(255, 255, 255);  
      	border: 1px solid black;  
      	padding: 1px;  
         }  
      ...  
      td.mc { background-color: #FF9115;  
         }  
      ...  
      td.end { border-bottom: 3px solid black;  
         }  
      ...  
      .left { text-align: left;  
      	}  
      ...  
      .big { font-family: Arial,sans-serif;  
           font-size: 14pt;  
           font-weight: bold;  
        }  
      ...  
      .med { font-family:Arial,sans-serif;  
           font-size:10pt;  
           font-weight:bold;  
        }  
      ...
      

      Ich habe schon alles mögliche durchprobiert, aber ich bekomme die beiden Spalten einfach nicht linksbündig...

      Dennis.

      1. Om nah hoo pez nyeetz, bleibert!

        Ich wüsste nicht, warum ein text-align: left nicht funktioinieren sollte.

        big und left sind sicherlich präsentationsbezogene Klassenbezeichner. Da gibts bestimmt was besseres. Verlinke doch mal die komplette Seite.

        Matthias

        --
        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen NOS und Nostalgie.

        1. Hallo Matthias!

          Ich wüsste nicht, warum ein text-align: left nicht funktioinieren sollte.

          Ich auch nicht, deswegen frage ich ja.

          big und left sind sicherlich präsentationsbezogene Klassenbezeichner. Da gibts bestimmt was besseres. Verlinke doch mal die komplette Seite.

          Ich habe mal einen Teil der Tabelle hochgeladen. Bitte nicht überall rumnörgeln, das ganze ist Teil eines Framesets, den ich mal vor 10 jahren gebastelt habe, und den ich jetzt genralüberhole. Insofern kommt es mir jetzt gerade nur auf die spaltenbezogene Ausrichtung an. Ich habe einen Teil der Tabelle exemplarisch rauskopiert und online gestellt:

          Testtabelle

          Dennis.

        2. Ich wüsste nicht, warum ein text-align: left nicht funktioinieren sollte.

          Fällt mir gerade auf:

          ein text-align: left hilft auch! Aber nicht im col-Tag. Ich meinte außerdem:

          <colgroup>  
          <col width="100" align="left">  
          </colgroup>
          

          Das sollte doch eigentlich funktionieren?

          Dennis.

      2. Ich habe schon alles mögliche durchprobiert, aber ich bekomme die beiden Spalten einfach nicht linksbündig...

        Es geht um Spalte 2 und 16, dann mache im CSS dieses:

        tr>td:nth-child(2) {text-align:left}  
        tr>td:nth-child(16) {text-align:left}
        

        Bedeutet: In jeder Zeile tr ist der Text im zweiten und sechzehnten Kind linksbündig anzuordnen.

        Da ich nicht weiss, ob nth auch bei älteren Browsern wirkt, wäre die Alternative

        tr>td:first-child+td {text-align:left}  
        tr>td:first-child+td+td+td+td+td+td+td+td+td+td+td+td+td+td+td {text-align:left}
        
        1. Danke, werde ich auch mal testen!

          Dennis.

          1. Om nah hoo pez nyeetz, bleibert!

            Danke, werde ich auch mal testen!

            Da dir kein colspan in die Quere kommt, hilft td:nth-child(2).

            Da dich aber ein rowspan behindert (z.B. Zeile 4) verwende td:last-child

            Matthias

            --
            Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Iris und Irish Coffee.

            1. Om nah hoo pez nyeetz, Matthias Apsel!

              Da dir kein colspan in die Quere kommt, hilft td:nth-child(2).

              Da dich aber ein rowspan behindert (z.B. Zeile 4) verwende td:last-child

              Also genau das, was Tabellenkalk um 15:46 schrieb.

              Matthias

              --
              Der Unterschied zwischen Java und JavaScript ist größer als der zwischen neu und neutral.

  2. Hi,

    Gibt es sonst eine Möglichkeit, ganze Spalten unterschiedlich auszurichten?

    Wenn dir kein colspan in die Quere kommt, dann besteht eine Spalte aus den n-ten Kindelementen der Tabellenzeilen …

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hallo Chris!

      Wenn dir kein colspan in die Quere kommt, dann besteht eine Spalte aus den n-ten Kindelementen der Tabellenzeilen …

      8-/

      Okay. Und wie kann ich beispielsweise immer die zweite Zelle einer Zeile ansprechen, und Ihr eine bestimmte Formatierung verpassen? Und was mache ich, wenn ich mit ROWSPAN arbeite, also in den Zeilen unterschiedlich viele TDs habe?

      Dennis.

      1. Hallo Chris!

        Wenn dir kein colspan in die Quere kommt, dann besteht eine Spalte aus den n-ten Kindelementen der Tabellenzeilen …

        8-/

        Okay. Und wie kann ich beispielsweise immer die zweite Zelle einer Zeile ansprechen, und Ihr eine bestimmte Formatierung verpassen? Und was mache ich, wenn ich mit ROWSPAN arbeite, also in den Zeilen unterschiedlich viele TDs habe?

        Dennis.

        probiermal:
        td:nth-child(2), td:last-child { text-align:left; }
        Gruß
        Kalk

        1. probiermal:
          td:nth-child(2), td:last-child { text-align:left; }

          Danke, kommt auch ins Lösungsbuch :-)

          Dennis.

        2. probiermal:
          td:nth-child(2), td:last-child { text-align:left; }
          Gruß
          Kalk

          Klappt fast! Da ich leider in der letzten Spalte auch hin- und wieder ein rowspan habe, geht das mit td:last-child nicht. Aber td:nth-child(2) geht schon mal.

          mit col plus align="left" wäre das so schön einfach...

          Dennis.

          1. Om nah hoo pez nyeetz, bleibert!

            Klappt fast! Da ich leider in der letzten Spalte auch hin- und wieder ein rowspan habe, geht das mit td:last-child nicht.

            Kann ich nicht bestätigen.

            Matthias

            --
            Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Alte und Alternative.

            1. Kann ich nicht bestätigen.

              Ich schon.

              Testtabelle

              Wenn in der letzten Zelle ein rowspan ist, dann hat die Zeile darunter eine Zelle weniger, also bezeichnet dann dort der letzte td-Tag die vorletzte Zelle in der Reihe.

              Dennis.

              1. Om nah hoo pez nyeetz, bleibert!

                Wenn in der letzten Zelle ein rowspan ist, dann hat die Zeile darunter eine Zelle weniger, also bezeichnet dann dort der letzte td-Tag die vorletzte Zelle in der Reihe.

                Ja, hab ich inzwischen auch verstanden ;-)

                Matthias

                --
                Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Nickel und Nickelodeon.

                1. Ja, hab ich inzwischen auch verstanden ;-)

                  Schön! :-)

                  Nur, was ist denn jetzt mit dem eigentlichen Thema:

                  <col width="100" align="left">

                  Wird align wieder mal von allen browsern ignoriert, oder habe ich da irgendwo einen Fehler im Code?

      2. Om nah hoo pez nyeetz, bleibert!

        Okay. Und wie kann ich beispielsweise immer die zweite Zelle einer Zeile ansprechen, und Ihr eine bestimmte Formatierung verpassen? Und was mache ich, wenn ich mit ROWSPAN arbeite, also in den Zeilen unterschiedlich viele TDs habe?

        Attribute groß zu schreiben ist ein Relikt aus dem vergangenen Jahrtausend. Rowspan verbindet mehrere Zeilen, hat also keinen Einfluss auf die Anzahl der td in einer Zeile.

        Matthias

        --
        Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Komma und Kommandeur.

        1. Attribute groß zu schreiben ist ein Relikt aus dem vergangenen Jahrtausend. Rowspan verbindet mehrere Zeilen, hat also keinen Einfluss auf die Anzahl der td in einer Zeile.

          1. Ich bin aus dem letzten Jahrtausend.
          2. Wie Du sehen kannst, habe ich das nur hier im Text groß geschrieben, nicht in meinem Code.
          3. Ich meinte nicht rowspan, sondern colspan. Ich habe unterschiedlich viele td-Tags in jeder Zeile.

          Dennis.

            1. Ich meinte nicht rowspan, sondern colspan. Ich habe unterschiedlich viele td-Tags in jeder Zeile.

            Ach Quark, natürlich meinte ich rowspan! Bin schon ganz kirre...

            Die Zellen in Spalte 2 und 3 erstrecken sich über mehrere Zeilen, also habe ich in den Zeilen darunter weniger td-Tags. So stimmt's jetzt.

            Dennis.