EDYTOWAĆ:
dziś powinniśmy po prostu korzystać z Flexboksa .
STARA ODPOWIEDŹ:
OK, chociaż głosowałem zarówno na pytania, jak font-size: 0;
i not implemented CSS3 feature
odpowiedzi, po wypróbowaniu dowiedziałem się, że żadne z nich nie jest prawdziwym rozwiązaniem .
W rzeczywistości nie ma nawet jednego obejścia bez silnych efektów ubocznych.
Następnie postanowiłem usunąć spacje (ta odpowiedź dotyczy tego argumentu) między inline-block
divami z mojego HTML
źródła ( JSP
), obracając to:
<div class="inlineBlock">
I'm an inline-block div
</div>
<div class="inlineBlock">
I'm an inline-block div
</div>
do tego
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>
to brzydkie, ale działa.
Ale chwileczkę ... co jeśli jestem generowania moje div wewnątrz Taglibs loops
( Struts2
, JSTL
itp ...)?
Na przykład:
<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>
Oznaczałoby to, że nie można tego wszystkiego wsadzić
<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>
nieczytelne, trudne do utrzymania i zrozumienia itp.
Rozwiązanie, które znalazłem:
użyj komentarzy HTML, aby połączyć koniec jednego div z początkiem następnego!
<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>
W ten sposób będziesz mieć czytelny i poprawnie wcięty kod.
I, jako pozytywny efekt uboczny, HTML source
choć zaatakowane pustymi komentarzami, spowodują prawidłowe wcięcie;
weźmy pierwszy przykład. Moim skromnym zdaniem to:
<div class="inlineBlock">
I'm an inline-block div
</div><!--
--><div class="inlineBlock">
I'm an inline-block div
</div>
jest lepszy niż to:
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>