⊗mkPmLtTCS 245 of 250 menu

Layout de duas colunas para site em CSS

Vamos criar um layout de duas colunas do seguinte tipo:

Para começar, vamos criar a estrutura básica da página:

<div id="wrapper"> <div id="header"> header </div> <div id="container"> <div id="content"> content </div> <div id="sidebar"> sidebar </div> </div> <div id="footer"> footer </div> </div>

Agora vamos aplicar estilos ao wrapper, alinhando-o ao centro da tela:

#wrapper { width: 1000px; margin: 30px auto; border: 1px solid black; }

Agora vamos definir os estilos do header e do footer:

#header { height: 200px; border: 1px solid black; } #footer { height: 200px; border: 1px solid black; }

Como você pode ver, estamos definindo uma altura para o header e o footer. Fazemos isso porque, no nosso esquema, eles não têm conteúdo. Se houvesse conteúdo, não seria necessário definir a altura dos blocos - ela seria formada pelo seu conteúdo.

Note também que não estamos definindo a largura para eles. Isso acontece porque o header e o footer são elementos de bloco e sua largura será automaticamente igual à largura do wrapper.

Vamos agora adicionar padding a eles, para que o texto não fique colado nas bordas:

#header { height: 200px; padding: 20px; border: 1px solid black; } #footer { height: 200px; padding: 20px; border: 1px solid black; }

No entanto, a presença do padding afetará negativamente os tamanhos dos blocos - eles ficarão maiores do que o especificado. Vamos mudar o comportamento de todos os blocos para que o padding e as bordas não expandam nossos blocos:

* { box-sizing: border-box; }

Agora precisamos colocar o conteúdo e a sidebar na mesma linha. Vamos fazer isso usando flexbox:

#container { display: flex; }

Vamos especificar a largura do conteúdo e da sidebar. A soma de suas larguras deve ser igual à largura do wrapper:

#content { width: 800px; } #sidebar { width: 200px; }

Suponha que queremos criar um espaçamento entre a sidebar e o conteúdo. Neste caso, precisamos aplicar um margin à sidebar. Com isso, teremos que "arrancar" a largura desse margin de algum lugar. Vamos "arrancar" do conteúdo, reduzindo correspondentemente sua largura:

#content { width: 780px; } #sidebar { width: 200px; margin-right: 20px; }

Agora vamos adicionar altura, já que nossos elementos não contêm conteúdo. É suficiente adicionar altura apenas a um elemento, pois o segundo elemento flex se ajustará em altura (por quê?). Vamos definir a altura para o conteúdo:

#content { width: 780px; height: 700px; } #sidebar { width: 200px; margin-right: 20px; }

Vamos adicionar os estilos restantes ao conteúdo e à sidebar:

#content { width: 780px; height: 700px; padding: 20px; border: 1px solid black; } #sidebar { width: 200px; margin-right: 20px; padding: 20px; border: 1px solid black; }

Pronto, nosso layout está finalizado. Vamos juntar todo o código:

<div id="wrapper"> <div id="header"> header </div> <div id="container"> <div id="sidebar"> sidebar </div> <div id="content"> content </div> </div> <div id="footer"> footer </div> </div> * { box-sizing: border-box; } #wrapper { width: 1000px; margin: 30px auto; border: 1px solid black; } #header { height: 200px; padding: 20px; border: 1px solid black; } #container { display: flex; } #content { width: 780px; height: 700px; padding: 20px; border: 1px solid black; } #sidebar { width: 200px; margin-right: 20px; padding: 20px; border: 1px solid black; } #footer { height: 200px; padding: 20px; border: 1px solid black; }
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar