Brauchen generischen div-css, die sich nicht überlappen (wie eine Tabelle)
Ich versuche, divs statt Tabellen, Stil-Boxen, um meine Inhalte. Der Inhalt kann jeder Größe und muss zulassen, dass der browser zu angepasst, um jeden Grad. Müssen die Hintergrundfarbe und die Grenze zu enthalten den Inhalt. Dies funktioniert gut mit Tabellen. Wie bekomme ich ein div auf die gleiche Weise funktionieren?
Hinweis: ich fügte hinzu, "_"s, weil meine non-breaking spaces wurden verloren.
(Quelle: c3o.com)
Inhalt:
<style type="text/css">
div.box, table.box
{
padding: 10px 1000px 10px 10px;
}
div.box-header, td.box-header
{
border: solid 1px #BBBBBB ;
font-size: larger;
padding: 4px;
background-color: #DDDDDD;
}
div.box-body, td.box-body
{
padding: 6px;
border: solid 1px #BBBBBB ;
border-top: none;
}
</style>
<div class="box">
<div class="box-header">please_help_make_these_divs_stop_overlapping</div>
<div class="box-body">please_help_make_these_divs_stop_overlapping</div>
</div>
<table class="box" width="100%" cellpadding="0" cellspacing="0">
<tr><td class="box-header">tables_make_good_containers_tables_make_good</td></tr>
<tr><td class="box-body">tables_make_good_containers_tables_make_good</td></tr>
</table>
- Ich kann Sie nicht sehen, überlappende Sie auf die gleiche Weise arbeiten, was ist hier das problem?
- Ich sehe keine Probleme. IE6 und FF2) zeigen beide das gleiche Verhalten -- es richtig arbeitet.
- Sorry, ich versuche upload mein Bild...scheint nicht zu sein, es zu machen. Werfen Sie einen Blick auf: c3o.com/div-like-table.JPG
- Ändern Sie die Größe Ihres browser-Weg nach unten (IE oder Firefox) die Tabelle enthält aber divs nicht.
- Ich erhöhte das Polster auf 1000, so dass Sie leicht sehen können überlappen
- Die links sind jetzt tot, macht die Frage unklar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt keinen einfachen Weg, das zu tun, ist crossbrowser freundlich, dass ich kenne.
Zumindest in firefox können Sie eine simulierte Tabelle Einstellung divs mit
So, dass diese divs arbeiten wie Tabellen-Elemente. Dann wird die box enthalten, es ist Inhalt. Ob das eine gute Lösung ist oder nicht, ist fraglich.
Habe ich ähnliche Probleme mit Seitenlayouts mich. In der Regel hab ich gelöst, die durch die Einstellung min-width und overflow:auto;
Wenn Sie wirklich nicht wollen, um eine Tabelle zu verwenden, die Sie dies tun können:
Nächsten Zeit diese Art von problem kommt gehen giveupandusetables.com.
Einen Weg, um Ihre Boxen schwebt. Add float:left; box, box-header und box-Körper. Add clear:both; Feld-Körper zu zwingen, es unten box-header. Sie werden wahrscheinlich brauchen, um hinzuzufügen, clear-Eigenschaft auf, was Inhalte, die folgt auch.
Werden Sie nicht erhalten die rechten Kanten der box-header und box-Körper zu richten, obwohl. Wenn Sie wollen, dass Ihre Breite die gleichen sind, die Sie wirklich wollen, eine Tabelle. Tabelle ist ein tool, um alle Zellen in der gleichen Spalte teilen der breiten.
Für andere Ideen, check-out diese Frage ALSO.
Erstens, sollten Sie die Verwendung von semantischem markup. Wenn etwas einen header und Inhalt zu markieren als solche mit Kopf-und Absatz-tags. Das wird Ihnen helfen, den Schritt aus der 'Tabelle-way" - denken waren, die Sie versuchen zu emulieren, markup und styles wie eine Tabelle, markup sollte an Erster Stelle stehen, kann mit CSS nach kommen.
Sollte Folgendes tun, was Sie wollen:
Denken über markup und style getrennt ist, ist der Pfad zu den CSS-Zen-Meisterschaft :o)
Das funktioniert (tatsächlich hält besser zusammen als Tabellen im ie7 auch)
HINWEIS: beide Boxen haben gleiche Links und rechts Polsterung oder einer ragt ein wenig.
Schwimmer sind nicht erforderlich, aber Sie scheinen verwirrend sein, die Verwendungen von Marge vs. Polsterung. Die folgenden geringfügigen änderungen an Ihrem Stil arbeitet, wie Sie es brauchen:
Ich geändert habe, ist die Polsterung auf der box, die einen Rand, zog die Grenze zu Ihrer box, und fügte hinzu, eine Unterstreichung der Kopfzeile.
Ich hatte dieses problem auch mit Firefox 6.0.1, Opera 10.62, Safari 5.1, aber nicht im IE 9, und das overflow:auto fixiert es in allen Browsern. Nichts anderes hat. Ich habe auch versucht overflow:enthalten, die auch das problem behoben, aber es scheint, dass enthalten ist kein Gültiger Wert für overflow, also gehe ich davon aus, dass, da war der Wert nicht gültig, auto ersetzt wurde.