Problema do encaixe:
Você não consegue encaixar as duas divs com width: 50%;
porque se você perceber sempre há um espaço vazio que separa os elementos do tipo inline-block
. É como se tivesse uma "margem" entre eles, e com essa "margem" as duas divs juntas passam de 100%. É algo próximo de 4px de espaçamento. Observe o espaço entre as divs com 50% de width:
abc
def
.
Para remover esse espaço você pode colocar o seguinte código nas divs:
font-size: 0;
Porém nem sempre você poderá se dar ao luxo de colocar um font-size: 0;
na div porque as vezes você precisará colocar texto nela. Um outra forma de solucionar muito estranha é escrever o código das divs coladinho no HTML:
<div>abc</div><div>def</div>
Ou então colocar um comentário entre as divs:
<div>abc</div><!--
--><div>def</div>
Resultado:
abc
def
.
Você pode encontrar aqui outras formas de solucionar.
A melhor delas é definir um font-size: 0; numa div pai e depois, nas duas divs filhas, colocar o font-size desejado.