Alternative CSS-Lösung zu border-spacing?
Daniel
- css
Hallo!
Habe da folgendes kleines Problem:
Ich möchte eine Tabelle nur mit CSS formatieren. Ist ja an sich kein grösseres Problem wenn es den IE nicht gäbe. Der ignoriert ja bekanntlich das border-spacing. Das HTML-Attribut cellspacing möchte ich auch möglichtst vermeiden.
Kennt hier vielleicht jemand eine alternative Lösung in CSS zu border-spacing?
Daniel
Hi,
Ich möchte eine Tabelle nur mit CSS formatieren. Ist ja an sich kein grösseres Problem wenn es den IE nicht gäbe. Der ignoriert ja bekanntlich das border-spacing. Das HTML-Attribut cellspacing möchte ich auch möglichtst vermeiden.
Kennt hier vielleicht jemand eine alternative Lösung in CSS zu border-spacing?
border-spacing alleine reicht nicht aus, es braucht auch border-collapse.
cu,
Andreas
border-spacing alleine reicht nicht aus, es braucht auch border-collapse.
Das border-collapse nützt mir auch recht wenig, da die Eigenschaft nicht den Freiraum zwischen den Zellen bestimmt. Und im IE hab ich leider 1-2 Pixel Abstand zwischen den einzelnen Zeilen. Mit border-spacing könnte ich den Abstand regeln aber der IE ignoriert border-spacing. Im Opera und Mozilla wird dagegen alles richtig dargestellt.
Ich bräuchte eine Lösung die ohne border-spacing auskommt (falls es so eine Lösung geben sollte). Mir margin hab ich es auch schon probiert - ohne Erfolg.
Gruß
Daniel
Hi,
border-spacing alleine reicht nicht aus, es braucht auch border-collapse.
Das border-collapse nützt mir auch recht wenig, da die Eigenschaft nicht den Freiraum zwischen den Zellen bestimmt.
Hab ich auch nie behauptet, daß border-collapse den Freiraum zwischen den Zellen bestimmt.
Aber beides ZUSAMMEN hilft.
Ich bräuchte eine Lösung die ohne border-spacing auskommt (falls es so eine Lösung geben sollte).
Warum brauchst Du eine Lösung ohne border-spacing?
Mir margin hab ich es auch schon probiert - ohne Erfolg.
margin KANN nicht helfen. Denn alle Elemente in der Tabelle haben keinen margin - und der margin der table wirkt nach außen, nicht zwischen den Zellen.
cu,
Andreas
Hi!
Hab ich auch nie behauptet, daß border-collapse den Freiraum zwischen den Zellen bestimmt.
Aber beides ZUSAMMEN hilft.
Hab jetzt mal beides zusammen ausprobiert. Schon ein recht seltsames Verhalten was der IE da an den Tag legt. Border-spacing allein kennt er nicht aber zusammen mit border-collapse stellt er es richtig dar.
Warum brauchst Du eine Lösung ohne border-spacing?
Weil ich bis eben dachte, dass der IE mit border-spacing überhaupt nichts anzufangen weiss. Wusste nicht, dass er es anscheinend zusammen mit border-collapse doch nimmt.
margin KANN nicht helfen. Denn alle Elemente in der Tabelle haben keinen margin - und der margin der table wirkt nach außen, nicht zwischen den Zellen.
Das mit dem margin war auch eher eine Verzweiflungstat. ;-)
Naja, jetzt scheint es zu funktionieren. Danke nochmal.
Gruß
Daniel
Hallo,
Hab ich auch nie behauptet, daß border-collapse den Freiraum zwischen den Zellen bestimmt.
Aber beides ZUSAMMEN hilft.
Das ist so ausgedrückt irreführend. border-spacing ist im Falle von border-collapse:collapse überflüssig, border-collapse:seperate ist Default und border-spacing in diesem vorgesehenen Fall im MSIE sowieso wirkungslos.
Hab jetzt mal beides zusammen ausprobiert. Schon ein recht seltsames Verhalten was der IE da an den Tag legt. Border-spacing allein kennt er nicht aber zusammen mit border-collapse stellt er es richtig dar.
Warum brauchst Du eine Lösung ohne border-spacing?
Weil ich bis eben dachte, dass der IE mit border-spacing überhaupt nichts anzufangen weiss. Wusste nicht, dass er es anscheinend zusammen mit border-collapse doch nimmt.
Es gibt zwei Möglichkeiten:
1. border-collapse:seperate. Dies ist die Standardeinstellung, man kann sie aber auch explizit angeben, das ist gleich. Bei einer Tabelle mit table, th, td {border:1px solid red;} beispielsweise werden die Einzelrahmen der Tabelle und deren Zellen nebeneinander angezeigt. In diesem Fall regelt (theoretisch) die Eigenschaft border-spacing den Abstand zwischen den Rahmen. Dies ist im MSIE (6) *immer* zwei Pixel, egal, welchen Wert man für border-spacing angibt. MSIE ignoriert das border-spacing also und benutzt immer den Standardwert.
2. border-collapse:collapse. Damit fallen die Rahmen der Tabelle und deren Zellen jeweils übereinander. Der Definition nach existieren somit keine Rahmenzwischenräume. border-spacing hat also keine Wirkung, es ist immer (in Gedanken) Null, egal, welcher Wert gesetzt wird, wenn border-collapse den Wert collapse hat, ist border-spacing wirkungslos.
Es stimmt also, dass MSIE mit border-spacing nichts anzufangen weiß. Ferner ist es falsch, dass im Falle von border-collapse:collapse immer auch border-spacing nötig ist. Beide Angaben, davon zumindest border-collapse implizit, sind bzw. wären notwendig, wenn du das nicht übereinanderfallende Rahmen ohne Zwischenräume möchtest.
Wenn du also separierte Rahmen bevorzugst und die Zwischenräume deaktivieren willst, wäre border-spacing:0 richtig, das führt im MSIE aber nicht zum gewünschten Resulta. Du müsstest also auf border-collapse:collapse ausweichen, was allerdings wie gesagt nicht nur die Zwischenräume, sondern das komplette Rahmenkonzept ändert.
Mathias
Hi,
Aber beides ZUSAMMEN hilft.
border-collapse:seperate ist Default
Nein, default ist separate. 2 e, 2 a...
- border-collapse:seperate.
s.o., separate
cu,
Andreas
Hallo Andreas,
seperate
separate
Parbleu, ich lerne es nie. Vor allem war ich diesmal sicher, es ein für alle mal gelernt zu haben. Andererseits schrieb ich instinktiv von »separierten Rahmen«, da hätte es mir auffallen sollen, hat ja dieselbe lateinische Wurzel.
Mathias
Moin!
Danke für deine Erläuterungen. Komisch, dass der IE bei mir erst border-collapse nicht nehmen wollte. Naja, hab wahrscheinlich erst einen Fehler in der Schreibweise gehabt. Inzwischen funktioniert es.
Daniel