CSS table-layout:, warum gibt Tabelle-Zeile nicht akzeptieren, eine Marge?
CSS:
.container {
width: 850px;
padding: 0;
display: table;
margin-left: auto;
margin-right: auto;
}
.row {
display: table-row;
margin-bottom: 30px;
/* HERE */
}
.home_1 {
width: 64px;
height: 64px;
padding-right: 20px;
margin-right: 10px;
display: table-cell;
}
.home_2 {
width: 350px;
height: 64px;
padding: 0px;
vertical-align: middle;
font-size: 150%;
display: table-cell;
}
.home_3 {
width: 64px;
height: 64px;
padding-right: 20px;
margin-right: 10px;
display: table-cell;
}
.home_4 {
width: 350px;
height: 64px;
padding: 0px;
vertical-align: middle;
font-size: 150%;
display: table-cell;
}
HTML:
<div class="container">
<div class="row">
<div class="home_1"></div>
<div class="home_2"></div>
<div class="home_3"></div>
<div class="home_4"></div>
</div>
<div class="row">
<div class="home_1"></div>
<div class="home_2"></div>
</div>
</div>
Meine Frage ist, relativ zu der markierten Zeile HERE
in der CSS. Ich fand heraus, dass die Zeilen sind zu nahe beieinander, so ich versucht, um einen unteren Rand, um Sie zu trennen. Leider funktioniert es nicht. Ich muss hinzufügen, die Ränder um die Zellen der Tabelle zur Trennung der Zeilen.
Was ist der Grund hinter diesem Verhalten?
Auch, ist es ok, um diese Strategie verwenden, um durchzuführen Layout wie ich:
[icon] - text [icon] - text
[icon] - text [icon] - text
oder gibt es eine bessere Strategie?
- Wenn Sie möchten, dass der Raum zwischen den Zeilen, hinzufügen von padding-bottom zu home_4.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie in der CSS 2.1-standard, Abschnitt 17.5.3. Wenn Sie
display:table-row
die Höhe des DIV ist allein bestimmt durch die Höhe dertable-cell
Elemente. So, margin, padding und height auf diese Elemente haben keine Wirkung.http://www.w3.org/TR/CSS2/tables.html
Wie ist das für eine Arbeit um (unter Verwendung einer tatsächlichen Tabelle)?
Es ist nicht so dynamisch, da Sie explizit die Farbe von der Grenze (es sei denn, es gibt einen Weg, um das auch), aber das ist etwas, ich experimentiere mit einem Projekt meiner eigenen.
Bearbeiten enthalten Kommentare zu
transparent
:Ist die nächste Sache, die ich gesehen habe wäre, um
border-spacing: 0 30px;
zu den div-container. Aber dieser lässt mich, mit dem Raum auf dem oberen Rand der Tabelle, die Niederlagen der Zweck, denn Sie wollte margin-bottom.line-height
margin: -30px 0
.Haben Sie versucht, die Einstellung für den unteren Rand zu
.row div
, also Ihre "Zellen"?Wenn Sie die Arbeit mit HTML-Tabellen, können Sie nicht einstellen, die Margen zu Reihen, zu - nur zu den Zellen.
display: table
. Jedoch, das ist nicht ganz das gleiche wie Marge...Gibt es eine ziemlich einfache Lösung für dieses Problem, die
border-spacing
undborder-collapse
CSS-Attribute aufdisplay: table
.Können Sie die folgenden, um-Polsterung/Margen in Ihren Zellen.
CSS:
HTML:
Beachten Sie, dass Sie haben zu haben
Sonst funktioniert es nicht.
Fiddle
diese können eine andere Lösung
Hinzufügen spacer Spanne zwischen zwei Elementen, dann machen Sie es unsichtbar:
Works - Add-Abstand Tabelle
hinzufügen eines br-Tags zwischen den divs gearbeitet. hinzufügen von br-Tags zwischen zwei divs, die display:table-row in der ein Elternteil mit display:table -