2 Tabellenrahmen - dominierender Style?

Hallo,

wahrscheinlich sagt der Titel doch nichts aus :wink: Es geht darum:

Ich habe eine Tabelle mit border-collapse:collapse. Wenn ich nun allen td´s gleiche Rahmen zuordne ringsum, passiert auch nichts. Doch wenn zwei benachbarte Zellen unterschiedliche Rahmendefinitionen für die Grenzlinie haben, kann sich natürlich nur eine durchsetzen. Kann man irgendwie bestimmen, welche das ist?

IE und Firefox machen es nämlich meist genau andersrum als ich es will und gehen offenbar auch nicht danach, welches Element zuerst definiert ist (und damit unterliegen sollte). Doch selbst, wenn das so wäre, würde das nicht in allen Fällen passen.

Für Lösungsvorschläge wäre ich dankbar.

Viele Grüße,
Kristian

Hallo,

wahrscheinlich sagt der Titel doch nichts aus :wink: Es geht
darum:

Doch, guter Titel, ich wusste sofort, welches Problem du meinst.
:wink:

Ich habe eine Tabelle mit border-collapse:collapse.
Wenn ich nun allen td´s gleiche Rahmen zuordne ringsum,
passiert auch nichts. Doch wenn zwei benachbarte Zellen
unterschiedliche Rahmendefinitionen für die Grenzlinie haben,
kann sich natürlich nur eine durchsetzen. Kann man
irgendwie bestimmen, welche das ist?

Du könntest sämtliche Rahmenseiten für sämtlche Tabellenzellen einzeln definieren, also: border-top, ~right, ~bottom, ~left jeweils einzeln definieren.

Wenn du zusammengefallene Rahmen an einer Stelle ganz unterdrücken willst und das der Angabe in der Nachnarzelle widerspricht, die dort eine Linie vorsieht, kannst du das mit border:hidden; statt border:none; oder border:0 tun.

http://de.selfhtml.org/css/eigenschaften/rahmen.htm#…

„border:hidden;“ setzt sich dann in jedem Fall durch, wenn es sich um einen vernünftigen Browser handelt. Im IE funktioniert das allerdings nicht immer; der unterdrückt z.B. andes als andere Browser den Außenrahmen bei einem einem TABLE-Element zugeordneten „border:hidden;“ nicht gegen eine den TH- und TD-Elementen zugeordnete Rahmenlinie.

Gruß Gernot

Du könntest sämtliche Rahmenseiten für sämtlche Tabellenzellen
einzeln definieren, also: border-top, ~right, ~bottom, ~left
jeweils einzeln definieren.

Darauf wird es wohl hinauslaufen. Das blöde daran ist, dass ich jede einzelne Zelle auf deren Inhalt hin überprüfen muss UND deren Nachbarzellen, um festzustellen, wo ein Rahmen hinkommen soll. In Excel besteht das Problem z.T. auch, aber da lässt es sich in diesem Falle einigermaßen elegant mit der bedingten Formatierung lösen.

Achso, die Formatierung soll am Ende dynamisch erfolgen, das kommt noch dazu.

Wenn du zusammengefallene Rahmen an einer Stelle ganz
unterdrücken willst und das der Angabe in der Nachnarzelle
widerspricht, die dort eine Linie vorsieht, kannst du das mit
border:hidden; statt border:none; oder border:0 tun.

Aha, in dieser Richtung ist das also möglich. Ich brauch jetzt nur noch genau das Gegenteil :wink: Denn das häufigste Problem ist, dass Rahmen fehlen und nur selten, dass sie auftauchen, wo sie nicht hingehören :wink:

… wenn es sich um einen vernünftigen Browser handelt …

Leidiges Thema. Alerdings habe ich festgestellt, dass KEIN Browser alles sauber darstellt. Der Firefox z.B. ist auch kein Musterschüler. Aber lassen wir das :wink:

Danke erstmal für den Hinweis mit „hidden“ und schönes Wochenende,
Kristian