Kann Netscape «td width="1"» nicht?
Willi
- browser
Hi ihr.
Ich möchte eine Seite dreispaltig gestalten, die drei Spalten möchte ich durch zwei schwarze Striche trennen. Mein Gedanke war, die Linien als 2 Pixel breite Tabellenzellen darzustellen, die ein 2x1px breites unsichtbares GIF enthalten. Folgender Code:
<html>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="15%" class="main" valign="top">
blablabla
</td>
<td width="1" bgcolor="#000000"><img src="/_images/1x1.gif" width="2"></td>
<td bgcolor="#FFFFFF">
blablabla
</td>
<td bgcolor="#000000" width="1"><img src="/_images/1x1.gif" width="2"></td>
<td width="20%" class="main" valign="top">
blablabla
</td>
</tr>
</table>
</body>
</html>
IE5.5 und Opera 4.02 stellen das wie gewünscht dar, lediglich Netscape 4.7 haut mir dicke schwarze Balken rein, die nun wirklich nicht schön anzuschauen sind. Wenn ich das im Archiv richtig verstanden habe, hat Netscape schon immer Probleme mit dieser Angabe (Zeillenbreite in Pixel erzwingen) gehabt, stimmt das oder gibt es mittlerweile eine Lösung? Inwieweit kann man den von IE und Netscape utnerstützen Befehl <img src="bla" height="100%">, also prozentuale Höhen/Breitenangabe als Browser-unproblematisch ansehen? Dann könnte ich eine schwarze Grafik vertikal auf 100% verzerren, aber wenn das wieder nur zwei, drei Browser in bestimmten Versionen anzeigen können, nützt das ja auch nichts.
Beste Grüße
Willi
Hallo !
Netscape hat in der Tat Probleme mit <td width="...">.
Vor allem dann, wenn prozentuale und feste Angaben gemischt werden.
Da muss man etwas tricksen:
Verteile die dir zur Verfügung stehende Breite prozentual auf die breiten Spalten und lasse für die Spalten, die nur die Linien enthalten sollen, nichts übrig. Diese drückst du dann wieder mit den GIFs auseinander.
In etwa so:
-------------------------------
<table width="100%">
<tr>
<td width="15%">Text... </td>
<td bgcolor="#000000"><image src="1x1.gif"</td>
<td width="65%">Text... </td>
<td bgcolor="#000000"><image src="1x1.gif"</td>
<td width="20%">Text... </td>
</tr>
</table>
-------------------------------
Das sollte dann selbst NS können (hoffe ich).
Gruß,
kerki
Hallo !
Mein Vorschlag mit
<table width="100%">
»» <tr>
<td width="15%">Text... </td>
<td bgcolor="#000000"><image src="1x1.gif"</td>
<td width="65%">Text... </td>
<td bgcolor="#000000"><image src="1x1.gif"</td>
<td width="20%">Text... </td>
»» </tr>
</table>
-------------------------------Das sollte dann selbst NS können (hoffe ich).
funktioniert leider nicht so generell ! :-(
Bei mir (1024x768) wurden die Spalten trotzdem mit 8px Breite dargestellt, wenn die Tabelle 100% Breite hatte.
Bei 50% wurden es schmaler, aber erst bei 20% waren die Spalten wirklich nur noch 1px breit.
Man muss also etwas mehr tricksen, als gedacht, um den NS in die Schranken zu weisen. Wahrscheinlich führen ineinander verschachtelte Tabellen zum gewünschten Erfolg.
Aber dazu müsste man schon die Gesamtseite in Augenschein nehmen, um zu sehen, was man genau machen kann.
Eventuell führt auch irgendeine CSS-Angabe zum gewünschten Ergebnis, aber da gibt es bestimmt andere Fachleute als mich.
Also nochmal zur Sicherheit: ES GEHT, aber nicht so einfach, wie ich dachte.
Gruß,
kerki
Hallo Willi,
Ich möchte eine Seite dreispaltig gestalten, die drei Spalten möchte ich durch zwei schwarze Striche trennen. Mein Gedanke war, die Linien als 2 Pixel breite Tabellenzellen darzustellen, die ein 2x1px breites unsichtbares GIF enthalten. Folgender Code:
Du hast Netscape eine Nuss zum Knacken gegeben, und eigen wie der Netsi nun mal ist, will er den Kern herausholen, ohne die Schale zu zertruemmern. Wen wundert es, dass am Ende beides nicht funktioniert.
<table width="100%" border="0" cellpadding="0" cellspacing="0"
Wie du es schon richtig verstanden hast, stuft NS diese Angabe hoeher ein als fixe Breitenangaben in den einzelnen Spalten. Die Breite der gesamten Tabelle wird angepasst, was auch richtig ist. dabei werden allle, auch fixe Spaltenbreiten neu berechnet, was nicht richtig ist. NS ist in der Hinsicht nicht beizukommen.
Abgesehen davon bringst du den armen Browser hiermit ganz schoen in Konflikt:
<td width="1" bgcolor="#000000"><img src="/_images/1x1.gif" width="2"></td>
Die Spalte soll 1 Pixel breit sein, die Grafik darin 2 Pixel breit. Au weia, was denn nun?
Aussserdem hast du Spalten mit einer Spreite von 35% + 2 Pixel definiert. Die ganze Tabelle soll aber 100 % breit sein. Dat jeht net. Du musst dich schon entscheiden, was du willst. Wenn du dem Browser solch widerspruechliche Angaben gibst, kann der arme Kelr dich doch gar nicht zufrieden stellen. Wie er es auch macht, er macht es falsch.
Inwieweit kann man den von IE und Netscape utnerstützen Befehl <img src="bla" height="100%">, also prozentuale Höhen/Breitenangabe als Browser-unproblematisch ansehen?
Du unterliegst einen kleinen Denkfehler. Du willst das Image auf hundert Prozent seiner Originalgroesse zerren, nicht der Groesse der Tabelle. So klappt das nicht.
Du kannst eine Tabelle in einer Tabelle benutzen. Diese Tabelle setzt du fix auf 1 Pixel Breite und hundert Prozent Hoehe und benutzt als Hintergrundfarbe schwarz.
Viele Gruesse
Kess
Hallo Willi,
Aussserdem hast du Spalten mit einer Spreite von 35% + 2 Pixel definiert. Die ganze Tabelle soll aber 100 % breit sein. Dat jeht net. Du musst dich schon entscheiden, was du willst. Wenn du dem Browser solch widerspruechliche Angaben gibst, kann der arme Kelr dich doch gar nicht zufrieden stellen. Wie er es auch macht, er macht es falsch.
Ups. Streiche den Absatz. Die mittlere Spalte ist mir zunaechst entgangen.
Viele Gruesse
Kess
Kann Netscape <td width="1"> nicht?
N'abend Willi,
das kann Netscape sogar ohne Pixel.gif:
<td width="1" bgcolor="#000000"><spacer type="block" width="1"></td>
Der Spacer-Befehl macht's möglich.
Mit den Hinweisen aus dem Forum sollte Deine Tabelle dann theoretisch so funktionieren:
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="15%" class="main" valign="top">blablabla</td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1" bgcolor="#000000"><spacer type="block" width="1"></td>
</tr>
</table>
</td>
<td bgcolor="#FFFFFF">blablabla</td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1" bgcolor="#000000"><spacer type="block" width="1"></td>
</tr>
</table>
</td>
<td width="20%" class="main" valign="top">blablabla</td>
</tr>
</table>
Grüße
Philip