EDITAR:
hoy, deberíamos usar Flexbox .
ANTIGUA RESPUESTA:
Bien, aunque he votado tanto las respuestas font-size: 0;
como las not implemented CSS3 feature
respuestas, después de intentarlo descubrí que ninguna de ellas es una solución real .
En realidad, no hay una sola solución sin fuertes efectos secundarios.
Luego decidí eliminar los espacios (esta respuesta es sobre este argumento) entre los inline-block
divs de mi HTML
fuente ( JSP
), convirtiendo esto:
<div class="inlineBlock">
I'm an inline-block div
</div>
<div class="inlineBlock">
I'm an inline-block div
</div>
a esto
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>
eso es feo, pero funciona.
Pero, espera un minuto ... ¿y si yo estoy generando mis divs dentro Taglibs loops
( Struts2
, JSTL
, etc ...)?
Por ejemplo:
<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 absolutamente imposible pensar en todo eso, significaría
<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>
eso no es legible, difícil de mantener y comprender, etc.
La solución que encontré:
¡use comentarios HTML para conectar el final de un div al comienzo del siguiente!
<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>
De esta forma, tendrá un código legible y correctamente sangrado.
Y, como un efecto secundario positivo, el HTML source
, aunque infestado por comentarios vacíos, resultará correctamente sangrado;
Tomemos el primer ejemplo. En mi humilde opinión, esto:
<div class="inlineBlock">
I'm an inline-block div
</div><!--
--><div class="inlineBlock">
I'm an inline-block div
</div>
es mejor que esto:
<div class="inlineBlock">
I'm an inline-block div
</div><div class="inlineBlock">
I'm an inline-block div
</div>