Oi Victor, tudo certo?
Os elementos com display: block;
ocupam todo o espaço disponível da página. Portanto, quando você coloca o margin: 0 auto;
ele se ajusta no centro da horizontal justamente por esse comportamento que ele ocupa o espaço todo da tela.
Com o elemento display: inline-block
, só por você já declará-lo dessa maneira (sem declarar o width por enquanto), ele já se torna-se inline
, deixando de lado o seu comportamento do tipo block
. E agora, como ele ocupa apenas o seu tamanho total, ele não tem mais uma referência de tamanho na horizontal. Antes ele tinha referência da página como um todo, já que ocupava todo o tamanho da página disponível.
Conseguiu compreender melhor? Fico à disposição! Abraços =)