Hi Cyx,
also z.B. minimalistisch mal einfach so:
#left{position:absolute;left:0px;top:0px;float:left;}
#mid{position:relative;left:0px;top:0px;float:left;}
#right{position:relative;}
klappt es nicht, aber das eigentliche Problem, es schaut bei jedem
Browser anders aus, auch einfache Breitenangaben reichen nicht.
ich habe jetzt schnell eine Variante nach deinen Anforderungen gebastelt, die alle Browser außer Netscape 4 berücksichtigt - für ihn müsste man ein eigenes Stylesheet definieren.
---
<?xml version="1.1" encoding="iso-8859-1" ?>
<!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" xml:lang="de-AT">
<head>
<title>3 DIVs</title>
<style type="text/css">
<!--
@media all {
body { margin:0; padding:0; }
div { padding:5px; }
#left { position:absolute; top:0; left:0; width:150px; border:1px solid #f00; }
#mid { margin:0 150px; border:1px solid #0f0; }
#right { position:absolute; top:0; right:0; width:150px; border:1px solid #00f; }
body>#mid { margin:0 162px; } /* nur für gute Browser ;-) */
}
-->
</style>
</head>
<body>
<div id="left">
<p>Linke Spalte, fix 150px breit</p>
</div>
<div id="mid">
<p>Mittlere Spalte, füllt den Zwischenraum immer aus</p>
</div>
<div id="right">
<p>Rechte Spalte, fix 150px breit</p>
</div>
</body>
</html>
---
Mozilla macht das schon korrekt, denn ein Element hat eine Höhe und *zusätzlich* Innen- und Außenabstand und einen Rahmen.
Genau das hatte ich gemeint, ein w3c-bug oder Weitsicht in Hinblick auf
mediale Inhalte wo nicht die Seitenbeschreibung wichtig ist sondern
die Zuverlässigkeit einer immer verfügbaren Nutzfläche?
Will man Elemente mit fixen Größen einfügen, ist diese Variante natürlich besser, weil man sich um alles "drumrum" nicht mehr kümmern muss, das erledigt der Browser. Würde die gesamte Größe, inklusive Rändern usw. berücksichtigt werden, müsste man IMHO noch mehr rechnen.
Es soll offenbar nicht möglich sein einfach mal zwei div zu positionieren
und denen gleiche Höhen zu geben und danach Innenabstände zu korrigieren,
nein man soll dann mehrere Werte ändern und hat dabei noch unterschiedliches
Verhalten der Browser.
Naja, die Größe der Box bezieht sich nicht nur auf deren Inhalt, sondern auch auf das Beiwerk. Wo man rechnet, ist schließlich egal. Dass der M$IE es falsch macht, ist kein großes Problem: ich habe zunächst den Außenabstand des mittleren DIVs für ihn falsch definiert und diesen dann mit einem Selektor korrigiert. Da er diesen nicht versteht, gibt es auch kein Problem. Dafür, dass der M$IE Mist baut, kann ja die Spezifikation nichts ;)
Es zeigt sich dass IE6 und Netscape 4.x CSS ähnlicher interpretieren
als IE6 und Mozilla.
Der M$IE ist zwar bezüglich CSS ziemlich schwach, doch wenn du ihn mit Netscape 4 zu vergleichst, muss ich ihn doch glatt in Schutz nehmen ;)
Bei der geringen Verbreitung des Mozilla könnte
man natürlich trotzdem CSS a la M$ schreiben und teilweise auf Tabellen
verzichten, wenn der Aufwand es rechtfertigt und das Ergebnis sonst
wenigsten etwas Browsersicher ist.
Du vergisst in deiner Rechnung auch alle anderen Browser, die sich korrekt verhalten, wie zB Opera und die gesamten Geckos. Mittlerweile hat M$ ja gelernt und dem IE CSS schon etwas nähergebracht.
Wenn man aber nicht dauernd nachflicken
möchte, wie bei Netscape 6 usw. immer wieder nötig gewesen,
Netscape 6 war und ist Mist - eine zu früh veröffentlichte Mozilla-Version. Damit kann man auch nicht testen, erst ab Version 7.
muss ganz klar
Tabellen der Vorzug gegeben werden, die heute zuverlässig stabilen Aufbau
bei nicht rein statischem Layout ermöglichen.
Wenn du eine Seite als "stabil" betrachtest, wenn alle Elemente einzementiert sind, so mag das deine Meinung sein. Meine ist, dass eine stabile Seite mit (fast) allen Fenstergrößen zurechtzukommen hat und das geht nur mit CSS. HTML bietet alle Möglichkeiten, den Text *nicht* einzusperren, das ist ja gerade der Vorteil. Nicht statisches Layout lässt sich mit CSS ebensoleicht realisieren, sogar wesentlich flexibler als mit Tabellen. Außerdem behaupte ich, dass man spätestens bei XHTML mit Tabellen scheitert.
Noch ein Wort zu Netscape 4: Wer mit einer Draisine unterwegs ist, sollte sich nicht aufregen, dass er auf einer ICE-Strecke nicht weit kommt. Aber diese Diskussion ist mittlerweile mehr als lästig ;)
LG Orlando