Graphiken in Tabellen schließen nicht bündig ab

Alucard

Alucard

Mitglied
Thread Starter
Dabei seit
31.03.2004
Beiträge
241
Reaktionspunkte
0
Hallo,

ich habe eine Frage bezüglich der Einbindung von Graphiken in Tabellen. Wenn ich einen korrekten Kopf benutze, wie vom W3C vorgegeben z. B. folgenden:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

schließen die Graphiken in Safari und iCab (andere Browser habe ich gerade nicht da) am unteren Rand nicht bündig ab. Der Fehler kann behoben werden, wenn ich statt des Kopfes oben nur <html> einfüge.

Ist das in XHTML so festgelegt oder ist es ein Safari-Fehler?
Ich würde mich gerne an die W3C-Vorgaben halten. Was muß ich ändern?
 
Kannst Du mal Deinen HMTL Tabellen Code quoten? Bitte benutze den Button "ERWEITERT" unter dem Antwortfeld und dann die PHP-Quote Funktion.

Eins vorneweg: Nur mit <HTML> oben solltest Du nicht arbeiten. Ein gültiger Doctype ist der erste Schritt zu standardkonformen XHTML.

Du kannst zwischen zwei Möglichkeiten wählen: Dem "strict" Mode und dem "transitional" Mode. Im Strict Mode muss alles stimmen, im Transtional schaltet der Browser in den so genannten "Quirks" Mode und übersieht großzügig Fehler. Das passiert übrigens auch, wenn man ohne Doctype arbeitet.

Hier ein gültiger Doctype für den Strict:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Und hier der Doctype für Transitional:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


Frank
 
Das kenne ich vom Wechsel zu HTML 4. Damals habe ich noch lange Zeit 3.2 eingetragen, damit mir die Bilder nicht in den Tabellen rumhuepfen – was aber auch nicht im Sinne des Erfinders war.
Ich empfehle dir, einen korrekten Kopf zu verwenden und u.U. mit CSS entgegenzuwirken (margin, padding etc.).
 
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
</head>
<body style="margin:0px; padding:0px;">
<table style="margin:0px; padding:0px; border-collapse:collapse;">
<tr style="margin:0px; padding:0px;">
<td style="margin:0px; padding:0px;">
<img src="2.png" style="margin:0px; padding:0px;" width="50" height="50" alt="Testbild" />
</td>
<td style="margin:0px; padding:0px;">
<img src="2.png" style="margin:0px; padding:0px;" width="50" height="50" alt="Testbild" />
</td>
</tr>
<tr style="margin:0px; padding:0px;">
<td style="margin:0px; padding:0px;">
<img src="2.png" style="margin:0px; padding:0px;" width="50" height="50" alt="Testbild" />
</td>
<td style="margin:0px; padding:0px;">
<img src="2.png" style="margin:0px; padding:0px;" width="50" height="50" alt="Testbild" />
</td>
</tr>
</table>
<div>
<img src="2.png" style="margin:0px; padding:0px;" width="50" height="50" alt="Testbild" />
</div>
</body>
</html>

Der W3C-Validator sagt, daß die Seite perfekt ist. Aber in jeder Tabellenzelle habe ich einen mehrere Pixel breiten Rand am Boden. Die Seiten sind bündig.

XHTML 1.1 gibt es nur in der strict-Variante. Der Fehler besteht aber auch bei den Vorgängerversionen.
 
Tu mal folgende Attribute mit in den Table-Tag:

PHP:
cellpadding="0" cellspacing="0" border="0"


also

PHP:
<table cellpadding="0" cellspacing="0" border="0" style="margin:0px; padding:0px; border-collapse:collapse;">
...
...
...
</table>

Wenn das dann immer noch nicht geht: Größenangaben absolute per "width" und "height" für die Zellen festlegen.

Frank
 
Es ändert sich nichts. Cellpadding und Cellspacing werden ja auch bereits über border-collapse und padding im td attribut gesteuert. Rahmen sind keine vorhanden.

auf Windows-PCs besteht der Fehler auch im IE, was mich annehmen läßt, daß es sich um keinen Zufall handelt. gibt es noch andere Möglichkeiten Boxen zu beeinflussen?
 
Hast Du versucht, die Tabellenzellen mit einer festen Größe zu definieren?

Frank
 
ja. das ändert nichts.
 
Und als Doctype HTML 4.01 Transitional?

Ich habe früher auch viele Tabellenlayouts gebaut, aber solche renitenten Probleme hatte ich nie, hat immer mit den Cellpaddings=0 und den festen Größen funktioniert.

Frank
 
Dort funktioniert es. Aber ich möchte ja gerade xhtml, da es in xml eingebettet ist. die Transitional-Variante erlaubt ja gerade Attribute, die man nicht verwenden sollte. Deswegen sieht der browser sicherlich über den fehler hinweg. ich werde mal sehen, ob ich die Bilder alle als Hintergrundgraphiken einbinden kann. Wenn es funktioniert belasse ich es dabei.
Ich danke trotzdem erst einmal für Hilfe. Falls jemand eine saubere Lösung findet kann er sie ja noch posten.
 
Zurück
Oben Unten