<!DOCTYPE html>
<html>
<head>
<title>Width issue</title>
<style type="text/css">
body {
margin: 0;
}
#left {
width: 50%;
background: lightblue;
display: inline-block;
}
#right {
width: 50%;
background: orange;
display: inline-block;
}
</style>
</head>
<body>
<div id="left">Left</div>
<div id="right">Right</div>
</body>
</html>
JSFiddle: http://jsfiddle.net/5EcPK/
Der obige Code versucht, das #left div und das #right div nebeneinander in einer einzigen Zeile zu platzieren. Wie Sie in der obigen JSFiddle-URL sehen können, ist dies jedoch nicht der Fall.
Ich kann das Problem beheben und die Breite eines der Divs auf 49% reduzieren. Siehe http://jsfiddle.net/mUKSC/ . Dies ist jedoch keine ideale Lösung, da zwischen den beiden Divs eine kleine Lücke auftritt.
Eine andere Möglichkeit, das Problem zu lösen, besteht darin, beide Divs zu schweben. Siehe http://jsfiddle.net/VptQm/ . Das funktioniert gut.
Aber meine ursprüngliche Frage bleibt. Warum passen beide Divs nicht nebeneinander, wenn sie als Inline-Block-Elemente beibehalten werden?
flexbox
,table/table-row/table-cell
oder Verwendungfloat
.parent { font-size:0; } child {font-size: 1rem; }
. Mit rems ist jetzt am einfachstenborder
ist. Dies kann Speicherplatz hinzufügen, wenn Sie die Divs schweben lassen.Gute Antwort in CSS3 ist:
im übergeordneten Knoten und:
in div (oder anderen) bei 50%
Beispiel: http://jsfiddle.net/YpTMh/19/
BEARBEITEN:
es gibt einen anderen Weg mit:
für übergeordneten Knoten und überschreiben Sie es im untergeordneten Knoten
quelle
Dies liegt daran, dass das Leerzeichen zwischen Ihren beiden Divs als Leerzeichen interpretiert wird. Wenn Sie Ihre
<div>
Tags wie unten gezeigt in eine Linie bringen, wird das Problem behoben :quelle
Weil zwischen den Elementen ein Leerzeichen ist. Wenn Sie alle Leerzeichen entfernen, passen sie .
quelle
Entweder machen sie Block statt Inline-Block. Dadurch werden Divs so ignoriert, dass Leerzeichen zwischen ihnen ignoriert werden.
oder entfernen Sie Leerzeichen zwischen Tags
oder hinzufügen
zu einem der divs, um den von einem einzelnen gerenderten Raum eingenommenen Raum zu verringern.
quelle
Bitte überprüfen Sie den folgenden Code:
quelle
Flexbox-Beispiel - Dies wird für die übergeordnete Klasse verwendet, die die beiden nebeneinander liegenden Elemente enthält.
Entnommen aus der vertikalen Zentrierung eines Divs in einem anderen Div
quelle
Dies kann durch Hinzufügen der CSS-Anzeige: Inline zu dem Div erfolgen, das die Inline-Elemente enthält.
Beim Entfernen des Leerraums mithilfe eines Randes mit einem negativen Wert muss dieser zu diesem bestimmten Element hinzugefügt werden. Das Hinzufügen zu einer Klasse wirkt sich auf Orte aus, an denen diese Klasse verwendet wurde.
Es wäre also sicherer, display zu verwenden: inline;
quelle
float hinzufügen : left; zu beiden div-Tags.
quelle