Tabelle: COL mag kein ALIGN?
bleibert
- html
0 Matthias Apsel0 ChrisB0 bleibert2 Tabellenkalk0 bleibert0 bleibert
0 Matthias Apsel
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.
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
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
Om nah hoo pez nyeetz, Tabellenkalk!
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Quad und Quadflieg.
Matthias
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">—</td>
<td class="mc">—</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.
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
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:
Dennis.
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.
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}
Danke, werde ich auch mal testen!
Dennis.
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
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
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
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.
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
probiermal:
td:nth-child(2), td:last-child { text-align:left; }
Danke, kommt auch ins Lösungsbuch :-)
Dennis.
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.
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
Kann ich nicht bestätigen.
Ich schon.
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.
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
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?
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
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.
- 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.