Exemplos: Display CSS
display: block
Elementos block ocupam toda a largura disponível e sempre começam em uma nova linha. Você pode definir width, height, margin e padding em todas as direções.
div { display: block; } /* padrão para div, p, h1-h6 … */display: inline
Elementos inline ficam na mesma linha que o conteúdo ao redor. Eles só ocupam o espaço do conteúdo. Não aceitam width e height. As margens verticais são ignoradas.
width e height são ignorados em elementos inline:
span { display: inline; } /* padrão para span, a, strong … */
/* width e height são ignorados! */
span { width: 200px; height: 60px; } /* sem efeito */display: inline-block
Comporta-se como inline no fluxo (fica na mesma linha), mas aceita width, height, padding e margin verticais como um elemento block.
width:160 height:70inline-block
.botao {
display: inline-block;
width: 160px; /* agora funciona! */
height: 40px;
padding: 8px 16px;
text-align: center;
}display: none × visibility: hidden
Ambos ocultam o elemento, mas de formas diferentes:
display: none: remove o elemento do fluxo; não ocupa espaço.visibility: hidden: oculta visualmente, mas mantém o espaço no layout.
.oculto-none { display: none; } /* sem espaço no layout */
.oculto-vis { visibility: hidden; } /* espaço mantido */Caso prático: lista de navegação
Transformando o <ul> de block → inline → inline-block:
block (padrão)
inline
inline-block (com hover, padding vertical)
Botões: block vs inline-block
block: ocupa toda a largura
inline-block: lado a lado
Interativo: mostrar / ocultar com display: none
Outros valores de display
Resumo rápido
block → nova linha, aceita tudo.inline → na linha, não aceita width/height.inline-block → na linha + aceita width/height.none → invisível e sem espaço.flex / grid → modelos de layout modernos.