So ein Mist wie hier in diesem Thread habe ich schon lange nicht mehr gelesen
(@torben1 und @ImperatoR ausgenommen)! Abgesehen davon wurde für @Binguit die Lösung immer noch nicht gepostet.
Das ist zwar nichts weltbewegendes aber ein persönliches "pet peeve" von mir: Webseiten werden nicht mit HTML
programmiert sondern
geschrieben. HTML schreibt man und programmiert man nicht oder führ euer HTML etwas aus?
Tabellen sind übrigens "out".
Tabellen (und iFrames) sind genausowenig "out" wie Links, Breaks oder andere HTML-Elemente. Der Grund weshalb hier jeder zweite gleich "Standard" schreit (übrigens ein fürchterliches Wort, klingt so nach: alles sieht gleich aus, holt eure Mao-Anzüge aus dem Schrank) ist, dass durch die Verbesserung der Browser, Elemente nicht mehr Aufgrund ihrer Layouteigenschaften verwendet werden müssen sondern wegen ihrer Semantik.
Noch vor wenigen Jahren war CSS garnicht oder nur sehr schlecht implementiert und um ein "pixel-perfect" Layout zu gestalten verwendete Man Tabellen. Jetzt ist das nicht mehr nötig und man kann Tabellen für tabellarischen Inhalt verwenden und für andere Inhalte geeignetere Elemente (definition lists, unordered lists, divs, etc.).
Für kleine Seiten und unerfahrene Programmiere oder für ganz bestimmte Inhalte sind Tabellen sinnvoller als irgendeine php-Geschichte.
Das musst du mir mal erklären. Was hat die Wahl des Markup mit PHP zu tun?
Für ein angemessenes Layout sollte man Frames verwenden, mit CSS kann man da auch nicht viel erreichen.
Die Entscheidung Frames zu verwenden sollte nicht getroffen werden weil man schöne Layouts damit bauen kann sondern weil sie Semantisch passen (was äußerst selten oder nie der Fall ist).
Wenn ich eine Seite nur mit HTML programmiere und lediglich CSS verwende, um mir die Formatierung jeder einzelnen Datei zu ersparen, bleiben mir für Sachen wie Titelleiste und Index auf einer Seite nur zwei Möglichkeiten: Tabellen (was, wie Du bereits gesagt hast, eine riesige Friemelei ist) und Frames (was deutlich einfacher ist).
Was Tabellen mit der Titelleiste zu tun haben verstehe ich nicht.
Ich teile meine Inhalte in einzelne Segmente auf (Div-Tags) und formatiere diese dann mittels CSS.
Das ist auch nicht immer angebracht. Oft gibt es elegantere Methoden um div-itis zu vermeiden.
So jetzt zur Lösung:
Als erstes solltest du dich für ein Doctype entscheiden (sonst bringt der Validator auch nichts weil er nicht weiss nach welchen Kriterien er validieren soll).
XHTML ist seit einiger Zeit wohl der meist verbreitetste Doctype aber in Anbetracht auf das kommende HTML5 und der "falschen" content-type declaration bei XHTML ist das eine persönliche Entscheidung und nicht schlechter oder Besser als HTML 4.01. XHTML hilft zu Beginn sauberes Markup zu schreiben (Elemente müssen geschlossen werden und Attribute so wie Tags klein geschrieben werden). Des weiteren sind Attribute wie align oder height "deprecated".
Da du dich bestimmt noch nicht sehr mit dieser Thematik beschäftigt hast habe ich im Beispiel XHTML 1.0 Transitional verwendet (verzeiht mehr als Strict).
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Wenn du mir ein Bild vom Fertigen Layout und dessen Inhalt schickst
erkläre ich dir gerne wie du es richtig einbaust (es hängt vom Inhalt ab deswegen erklär mal ein bisschen mehr)! Den Blinkenden Rand baust du zum Beispiel nicht mehr in die Tabelle sondern legst ihn als Hintergrund:
Code:
<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Banner</title>
<style type="text/css" media="screen">
* {
border: 0;
margin: 0;
padding: 0;
}
a:link, a:visited {
text-decoratio: none;
}
a:hover, a:active {
text-decoration: underline;
}
table {
background: url(http://www.partnerbridge.de/images/anim.gif) repeat;
padding: 2px;
width: 300px;
}
table .picture {
background: grey;
height: 80px;
text-align: center;
width: 80px;
}
table .text {
background: black;
width: 220px;
}
</style>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="picture">1</td>
<td class="text">Here goes some text.</td>
</tr>
<tr>
<td class="picture">2</td>
<td class="text">Here goes some text.</td>
</tr>
</table>
</body>
</html>
Edit: Die neuen Posts habe ich hier nicht berücksichtigt.
LG,
Max