konnte ich mit "keine HTML-Tabellen erforderlich" kommen Lösung basiert auf einer Technik von Stu Nicholls bei CSS Play und ich persönlich mag es, weil es nicht nur in IE6 + und FF2 + funktioniert, sondern auch in CSS, das keine Hacks benötigt. Für mein Argument, warum ein CSS-basiertes Layout gegenüber HTML-Tabellen vorzuziehen ist, siehe unten.
Zunächst empfehle ich, dass beim Erstellen neuer Seiten mit CSS mit Standards kompatibel Browser-Modus. Für eine Erklärung des quirksmode- und standardkonformen Modus, schau dir this article von einer meiner Lieblings-CSS-Ressourcen-Seiten an. Sie müssen lediglich ein bestimmtes DOCTYPE-Element oben auf Ihren Seiten hinzufügen. Das CSS wird dann gezwungen, im standardkonformen Modus zu rendern, was zu weniger Fehlern und Browser-Idiosynkrasien führt. Für den Fall, dass Sie nicht in den Standard-kompatiblen Modus wechseln können, gibt es eine Min-Width-Lösung für Browser in quirksmode, die ebenfalls bei CSS Play verfügbar ist.
Zweitens müssen Sie einen zusätzlichen Wrapper um Ihr vorhandenes Markup hinzufügen. Dieser Wrapper wird verwendet, um die Mindestbreite für Browser festzulegen, die Min-width (nicht IE) verstehen. Sie können dann den * html-Trick verwenden, um gezielt IE 6 anzusprechen und Stu Nicholls Technik auf die inneren Wrapper anzuwenden.Die Technik wird hier detailliert und das spezifische Beispiel verwendet wird, ist „# 2 für Normen konformen Modus IE“:
http://www.cssplay.co.uk/boxes/minwidth.html
Das Endergebnis ist ziemlich einfach. Sie erstellt 2 50% -Spalten unter Verwendung der in der ursprünglichen Frage erwähnten 2-column ALA style-Technik, die eine minimale Gesamtbreite (in diesem Beispiel 500px) haben, bei der die Spalten die Größenänderung nicht mehr ändern und die rechte Spalte nicht unter die linke Spalte fällt. Ich hoffe das hilft!
Bearbeiten: Dieselbe Technik kann verwendet werden, um Cross-Browser-kompatible Mindestbreite auf alles anzuwenden. Zum Beispiel müssen die Spalten nicht jeweils 50% sein und eine beliebige Anzahl von Spalten kann verwendet werden. http://www.glish.com/css/ ist eine großartige Ressource für CSS-basierte Seitenlayouts und in Kombination mit dieser minimalen Breite gibt es viele schöne Layouts, die mit minimalem, gültigem CSS erstellt werden können.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
/* For browsers that understand min-width */
.width {
width: 100%;
min-width: 500px;
}
/* IE6 Only */
* html .minwidth {
border-left: 500px solid white;
position: relative;
float: left;
}
/* IE6 Only */
* html .wrapper {
margin-left: -500px;
position: relative;
float: left;
}
.left {
float: left;
width: 50%;
}
.right {
float: left;
}
</style>
</head>
<body>
<div class="width">
<div class="minwidth">
<div class="wrapper">
<div class="left">
Left
</div>
<div class="right">
Right
</div>
</div>
</div>
</div>
</body>
</html>
Nun, mein Anreiz für einen Stack-Überlauf Konto einrichten wurde in der Lage, unter dem „auf den Vorschlag zu reagieren Wenn Sie zwei Spalten möchten, verwenden Sie eine Tabelle, anstatt Div ist zu zwingen versucht, wie ein Tisch verhalten ". Da ich zu neu bin, um entweder zu kommentieren oder abzulehnen, erweitere ich diese Diskussion.
Wirklich?
Jemand stellt eine Frage zu CSS-basierten Layouts, und Sie antworten, indem Sie ihnen sagen, HTML-Tabellen zu verwenden?
Lassen Sie mich zunächst sagen, dass ich glaube nicht, dass HTML-Tabellen völlig unnötig sind. Wann immer ich Tabellendaten anzeigen muss, , d. H. Relationale Daten, verwende ich eine HTML-Tabelle. Die Eigenschaften der CSS-Tabellenanzeige werden noch nicht vollständig unterstützt (bald in IE8!) Und eine einstufige HTML-Tabelle ist eine effektive Lösung. Sehen Sie sich das Markup für eine der Webseiten von Google an und Sie werden sehen, dass sie einverstanden sind.
Als jemand, der viel Zeit damit verbracht hat, CSS-basierte Layouts zu schreiben, die browserübergreifend kompatibel sind, wenn sie es in 10 Minuten mithilfe einer Tabelle hätten tun können, stimme ich zu, dass es eine einfachere Lösung für dieses Problem gibt. Aber nur weil Sie Dynamit verwenden können, um Ihre Küche zu renovieren, heißt das nicht, dass Sie es sollten. Der folgende Artikel bietet eine detaillierte Erklärung dafür, warum CSS-basierte Layouts wünschenswerter sind.
http://www.chromaticsites.com/web-design-blog/2008-04-03/13-reasons-why-css-is-superior-to-tables-in-website-design/
es in allen Browsern passiert das? Ich habe ein Portal-Layout, das von IE gestoßen wird, weil es Minwidth ignoriert. –
Ich habe versucht, Ihre & nbsp zu ändern; aber der Parser mochte das nicht. Sieht wie ein Fehler in StackOverflow aus. – Neall
Ed.T: Nur in IE glaube ich. – Mike