Warum funktioniert "Inline-block" in diesem CSS nicht richtig?

7

Bitte überprüfen Sie das CSS unten.

%Vor%

Das Ergebnis im Browser:

Was ich brauche:

    
GATA 14.03.2014, 06:10
quelle

5 Antworten

21

Dies ist tatsächlich erwartetes Verhalten in HTML. Da Sie Inline-Block verwenden, werden alle Zeilenvorschubzeichen oder Leerzeichen, die Sie nach dem Element und vor einem weiteren Inline-Element haben, als Leerzeichen gezählt. Wenn Sie möchten, dass die Blöcke wie in Ihrem Bild nebeneinander gestapelt werden, müsste Ihr HTML-Code so aussehen.

%Vor%

funktionierende Demo

Es ist nicht sehr hübsch, aber andererseits würde ich empfehlen, einen anderen Ansatz zu verwenden und stattdessen die Elemente zu schweben.

Hier finden Sie eine ausführlichere Erklärung, warum dies auftritt.

Wie entferne ich den Abstand zwischen Inline-Blockelementen?

    
Tristan 14.03.2014, 06:17
quelle
1

Einfach erweitern Antwort von @Tristan hier geben.

Sie haben den css-Code unnötigerweise wiederholt. Sie können es verkleinern, indem Sie mehrere CSS wie:

verwenden %Vor%

ODER

%Vor%

Sie können Elemente nebeneinander halten, indem Sie einen der folgenden Ansätze verwenden:

Mr_Green 14.03.2014 06:34
quelle
0

Fügen Sie stattdessen float:left; zu Ihrem div.ex , div.ex2 und div.ex3 hinzu.

JSFIDDLE

UPDATE: Fügen Sie position:absolute zum zweiten und dritten Div hinzu, wenn float keine Wahl ist.

FIDDLE

UPDATE 2: Fügen Sie dies nur zum dritten Div hinzu, wenn Sie diesen Zwischenraum benötigen.

FIDDLE

    
Fr0zenFyr 14.03.2014 06:25
quelle
0

Mein Trick ist die Schriftgröße: 0; im Elternelement, weil es die Schriftgröße ist, die verursacht, dass die Mathematik nicht perfekt addiert wird (etwa 4 px Überlappung pro div, abhängig von der Bildschirmgröße) und bewirkt, dass ein div unter dem anderen erscheint.

%Vor%     
Squivo 31.03.2015 19:31
quelle
0

Sie können Kommentare wie diese verklagen (das sieht im Code etwas besser aus):

%Vor%     
Bartek Qoster 08.12.2017 11:22
quelle

Tags und Links