BEARBEITEN:
Heute sollten wir nur Flexbox verwenden .
ALTE ANTWORT:
OK, obwohl ich sowohl die font-size: 0;
als auch die not implemented CSS3 feature
Antworten positiv bewertet habe, habe ich nach dem Versuch herausgefunden, dass keine von ihnen eine echte Lösung ist .
Tatsächlich gibt es nicht einmal eine Problemumgehung ohne starke Nebenwirkungen.
Dann habe ich beschlossen, die Leerzeichen (diese Antwort bezieht sich auf dieses Argument) zwischen den inline-block
Divs aus meiner HTML
Quelle ( JSP
) zu entfernen und dies zu ändern :
<div class="inlineBlock">
I'm an inline-block div
</div>
<div class="inlineBlock">
I'm an inline-block div
</div>
dazu
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>
das ist hässlich, aber funktioniert.
Aber warte eine Minute ... was ist, wenn ich meine Divs im Inneren generiere Taglibs loops
( Struts2
,JSTL
, etc ...)?
Zum Beispiel:
<s:iterator begin="0" end="6" status="ctrDay">
<br/>
<s:iterator begin="0" end="23" status="ctrHour">
<s:push value="%{days[#ctrDay.index].hours[#ctrHour.index]}">
<div class="inlineBlock>
I'm an inline-block div in a matrix
(Do something here with the pushed object...)
</div>
</s:push>
</s:iterator>
</s:iterator>
Es ist absolut nicht denkbar, all das Zeug inline zu bringen, das würde bedeuten
<s:iterator begin="0" end="6" status="ctrDay">
<br/>
<s:iterator begin="0" end="23" status="ctrHour"><s:push value="%{days[#ctrDay.index].hours[#ctrHour.index]}"><div class="inlineBlock>
I'm an inline-block div in a matrix
(Do something here with the pushed object...)
</div></s:push></s:iterator>
</s:iterator>
das ist nicht lesbar, schwer zu pflegen und zu verstehen, etc ...
Die Lösung, die ich gefunden habe:
Verwenden Sie HTML-Kommentare, um das Ende eines Div mit dem Anfang des nächsten zu verbinden!
<s:iterator begin="0" end="6" status="ctrDay">
<br/>
<s:iterator begin="0" end="23" status="ctrHour"><!--
--><s:push value="%{days[#ctrDay.index].hours[#ctrHour.index]}"><!--
--><div class="inlineBlock>
I'm an inline-block div in a matrix
(Do something here with the pushed object...)
</div><!--
--></s:push><!--
--></s:iterator>
</s:iterator>
Auf diese Weise erhalten Sie einen lesbaren und korrekt eingerückten Code.
Und als positiver Nebeneffekt ist die HTML source
wird das Ergebnis, obwohl es von leeren Kommentaren befallen ist, korrekt eingerückt.
Nehmen wir das erste Beispiel. Meiner bescheidenen Meinung nach:
<div class="inlineBlock">
I'm an inline-block div
</div><!--
--><div class="inlineBlock">
I'm an inline-block div
</div>
ist besser als das:
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>