# eine einfache tabellle, breitenangaben werden ignoriert



## jeanlucpicard (11. August 2003)

hallo,

es ist wirklich zum verrücktwerden mit den verschiedenen browsern, ich teste meine seiten immer mit ie, mozilla und konqueror. nun habe ich eine einfach tabelle erstellt, mozilla und ie ignorieren meine breitenangaben einfach, der konqueror stellt sie richtig dar... hier mal der code


```
<html>
<head>
<title>Top</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body style="margin: 0px;">
<TABLE WIDTH="100%" height="31" BORDER=0 CELLPADDING=0 CELLSPACING=0>
	<TR>
		<TD WIDTH="31" HEIGHT="31" background="Bilder/rahmen_01.gif" ></TD>
		<TD WIDTH="333" background="Bilder/rahmen_02.gif" ></TD>
		<TD background="Bilder/rahmen_03.gif" ></TD>
		<TD WIDTH="333" background="Bilder/rahmen_04.gif" ></TD>
		<TD WIDTH="31" background="Bilder/rahmen_05.gif" ></TD>
	</TR>
</table>
</body>
</html>
```

das ganze soll ein rahmen werden, wie man unschwer erkennen kann  ... nur die mittlere zelle soll in der breite bei veränderter fenstergröße variieren...

was ist denn daran nun nicht in ordnung, oder zu schwer für einen browser zu verstehen...


----------



## Thomas Lindner (11. August 2003)

*Manche* Browser "kämpfen mit einem Gemisch aus prozentualen und festen Angaben!


----------



## sam (11. August 2003)

Du kannst ja nicht einfach die komplette 
Tabelle auf 100% aufblasen und dann die 
einzelnen Zellen mit Pixelangaben versorgen...
Das kann ja nur schief gehen.

...ausserdem gibt es kein _height-attribut_ bei 
Tabellen. Arbeite da lieber mit durchsichtigen 
Gifs.


----------



## jeanlucpicard (11. August 2003)

warum verbreitest du falsche informationen? damit wird doch keinem geholfen 


natürlich geht das alles, ich habs jetzt hinbekommen, zwar stellt der konqueror die seite nich ganz korrekt dar, aber vielleicht krieg ich das ja noch hin...

das problem war scheinbar, das "cellpadding=0" als "zellauffüllung nicht erlaubt" interpretiert wird, und die browser die mittlere zelle deshalb nicht skalieren wollten. ich habe cellpadding jetzt auf 1 gesetzt, dafür musste ich die zellenbreiten (nicht die höhen) jeweils um 2 pixel schmaler machen...

hier der code:


```
<TABLE WIDTH="100%" height="100%" BORDER=0 CELLPADDING=1 CELLSPACING=0>
	<TR>
		<TD background="./images/rahmen_01.gif" WIDTH=29 HEIGHT=31></TD>
		<TD background="./images/rahmen_02.gif" WIDTH=331></TD>
		<TD background="./images/rahmen_03.gif"></TD>
		<TD background="./images/rahmen_04.gif" WIDTH=331></TD>
		<TD background="./images/rahmen_05.gif" WIDTH=29></TD>
	</TR>
	<TR>
		<TD background="./images/rahmen_06.gif"HEIGHT=203></TD>
		<TD COLSPAN=3 ROWSPAN=3>
			<iframe width="100%" height="100%" frameborder="0" scrolling="auto" name="MainFrame" src="leer.php"></iframe>
		</TD>
		<TD background="./images/rahmen_08.gif"HEIGHT=203></TD>
	</TR>
	<TR>
		<TD background="./images/rahmen_09.gif"></TD>
		<TD background="./images/rahmen_10.gif"></TD>
	</TR>
	<TR>
		<TD background="./images/rahmen_11.gif" HEIGHT=203></TD>
		<TD background="./images/rahmen_12.gif" HEIGHT=203></TD>
	</TR>
	<TR>
		<TD background="./images/rahmen_13.gif" HEIGHT=31></TD>
		<TD background="./images/rahmen_14.gif"></TD>
		<TD background="./images/rahmen_15.gif"></TD>
		<TD background="./images/rahmen_16.gif"></TD>
		<TD background="./images/rahmen_17.gif"></TD>
	</TR>
</TABLE>
```

damit wird um die seite ein rahmen möglich (oben, unten, links, rechts)

bis dann, picard


----------



## sam (11. August 2003)

> _Original geschrieben von jeanlucpicard _
> *warum verbreitest du falsche informationen? damit wird doch keinem geholfen *


Welche Information war denn bitte falsch?
Das würde mich mal brennend interessieren...
Natürlich kann es sein, dass dieser Chaos-Code 
durch Zufall mal funktioniert, aber 
standard-konform ist da wahrscheinlich sehr 
wenig...

Übrigens: Netiquette  - besonders Punkt 12


----------



## Andreas Gaisbauer (11. August 2003)

> _Original geschrieben von jeanlucpicard _
> warum verbreitest du falsche informationen? damit wird doch keinem geholfen



ging das an Thomas oder an sam? BEIDE haben dir hier keine falschen Infos gegeben, weil:
a) ...viele Browser mit relativen und absoluten Angaben in einem Element Probleme haben...
b) ...das Height Attribut noch nie im HTML Standard war
c) ...Wenn du 100% Breite angibst und dann in JEDER Zelle einen Pixelwert angibst würde es nicht funktionieren (hast du aber nicht gemacht, muss Sam übersehen haben).

Cellpadding hat damit imo nix zu tun, das Problem liegt eher daran, dass du komplett Leere Zellen hast, welche nicht von allen Brwosern gerendert werden. Wenn du in jede Zelle ein BlindGif oder einen geschützten Leerschritt einfügst werden deine Angaben auch nicht ingoriert...


```
<html>
<head>
<title>Top</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body style="margin: 0px;">
<TABLE WIDTH="100%" height="31" BORDER=1 CELLPADDING=0 CELLSPACING=0>
	<TR>
		<TD WIDTH="31" HEIGHT="31" background="Bilder/rahmen_01.gif" >&nbsp;</TD>
		<TD WIDTH="333" background="Bilder/rahmen_02.gif" >&nbsp;</TD>
		<TD background="Bilder/rahmen_03.gif" >&nbsp;</TD>
		<TD WIDTH="333" background="Bilder/rahmen_04.gif" >&nbsp;</TD>
		<TD WIDTH="31" background="Bilder/rahmen_05.gif" >&nbsp;</TD>
	</TR>
</table>
</body>
</html>
```


bye


----------



## jeanlucpicard (11. August 2003)

mein letzter beitrag richtete sich an sam, ich hab ja auch "du" geschrieben und nicht ihr .

du hast recht, ich habe jetzt mal in jede zelle ein nbsp eingefügt, so geht es auch. das cellpadding muß trotzdem aber auch was damit zu tun haben, schließlich hat es so dann ja auch funktioniert. die von dir genannte variante ist jedoch ohne zweifel eleganter.

mit dem html-standard kenne ich mich nicht aus, scheinbar gibt es aber zwischen standard und aktuellem stand der dinge wie immer eine differenz. die von mir verwendeten browser haben die angaben jedenfalls richtig interpretiert. somit scheint es für mich ein quasi-standard zu sein...

... ich bin kein webseiten-programmierer (oder wie auch immer sich dieser beruf nennt), daher werde ich auch nicht alle browser und eventualitäten berücksichtigen können. ich drehe ja schon durch, bei dem versuch eine seite zu bauen, die in 3 browsern ungefähr gleich aussieht  


@sam
korrigire mich, wenn ich das falsch sehe, aber die "chaos-code"-bemerkung war wohl als herabsetzung meines codes zu verstehen. wenn die paar zeilen von dir als chaos bezeichnet werden...

... denn allein eine überflüssige heigt-angabe macht doch noch kein chaos, oder?


----------



## sam (11. August 2003)

> _Original geschrieben von crono _
> *muss Sam übersehen haben.*


Ja, tut mir leid, muss ich überlesen haben  

Zum Thema Chaos-Code:

- willkürliche Groß- und Kleinschreibung
- vergessene Anführungeszeichen
- verbotene Attribute
- leere Tabellenzellen

Also wenn DAS kein Chaos ist, was dann?
Sauber ist jedenfalls anders 

Und noch einmal versuche ich dir Punkt 12 
unseres Netiquettes nahezulegen...


----------



## Daxi (12. August 2003)

Ich muss Sam Recht geben. Dein Code ist etwas komisch.
Aber mit den 100% Breite hat er bestimmt gemeint, dass du der gesamten Tabelle eine Breite von 100% gibst.
Danach arbeitest du mit Pixelangaben für die Zellen weiter.
Funktioniert zwar, macht aber so keinen sinn, da die Browser diese angaben dann wieder relativ sehen.
Ich würde nur Prozent- und Pixelangaben mischen, wenn z.B.:

```
<table width=100%>
<tr>
<td width=150>Linker Teil mit Breite 150 Pixel</td>
<td width=*>Rechter Teil. Er passt sicht an. Tabelle ist auf 100%. 100% entsprechen ? Pixel. Also ist diese Spalte dann ?-150 Pixel breit.</td>
</tr>
</table>
```
Ich selbst weiß nicht, ob das height-Tag wirklich regelnkonform ist oder nicht. Es wird aber von allen gängigen Browsern unterstützt. Das ist fakt.

Das mit dem komischen Code soll nicht negativ gemeint sein, ist er aber. *g*
Du könntest hier nämlich dann gleich prozentuale Angaben für die Zellen nehmen...

*edit:*
Noch was zur Erläuterung:
cellpadding = Abstand zwischen Zellenrand und Text
cellspacing = Zellenabstand untereinander


----------



## Andreas Gaisbauer (13. August 2003)

Hallo,

er hat es doch so gemacht wie du meinst.

```
TD WIDTH="31" HEIGHT="31" background="Bilder/rahmen_01.gif"> &nbsp;</TD>
<TD WIDTH="333" background="Bilder/rahmen_02.gif" >&nbsp;</TD>
<TD background="Bilder/rahmen_03.gif" >&nbsp;</TD>
<TD WIDTH="333" background="Bilder/rahmen_04.gif" >&nbsp;</TD>
<TD WIDTH="31" background="Bilder/rahmen_05.gif" >&nbsp;</TD>
```

Zelle 1 + 2 Pixel angaben, Zelle 3 = frei , Zeile 4 + 5 wieder Pixel.

Zu Height: Height war noch nie in einem HTML Standard - wurde aber seit jeher interpretiert (wird sich späterstens bei XHTML 2.0 ändern)

bye


----------

