MODIFICARE:
oggi dovremmo semplicemente usare Flexbox .
VECCHIA RISPOSTA:
OK, anche se ho upvoted entrambe le font-size: 0;
e le not implemented CSS3 feature
risposte, dopo aver provato ho scoperto che nessuno di loro è una vera e propria soluzione di .
In realtà, non esiste nemmeno una soluzione senza forti effetti collaterali.
Quindi ho deciso di rimuovere gli spazi (questa risposta riguarda questo argomento) tra i inline-block
div dalla mia HTML
fonte ( JSP
), trasformando questo:
<div class="inlineBlock">
I'm an inline-block div
</div>
<div class="inlineBlock">
I'm an inline-block div
</div>
a questo
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>
è brutto, ma funziona.
Ma aspetta un minuto ... cosa succede se sto generando i miei div all'interno Taglibs loops
( Struts2
,JSTL
, ecc ...)?
Per esempio:
<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>
Non è assolutamente pensabile incorporare tutta quella roba, vorrebbe dire
<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>
che non è leggibile, difficile da mantenere e da capire, ecc ...
La soluzione che ho trovato:
usa i commenti HTML per collegare la fine di un div all'inizio del prossimo!
<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>
In questo modo avrai un codice leggibile e correttamente rientrato.
E, come effetto collaterale positivo, il HTML source
, sebbene infestato da commenti vuoti, risulterà correttamente rientrato;
prendiamo il primo esempio. A mio modesto parere, questo:
<div class="inlineBlock">
I'm an inline-block div
</div><!--
--><div class="inlineBlock">
I'm an inline-block div
</div>
è meglio di questo:
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>