HTML & CSS para iniciantes

HTML & CSS para iniciantes (Parte 36): O modelo de caixa

Todos os vídeos do tutorial HTML & CSS para iniciantes

No CSS, os elementos são tratados basicamente como caixas retangulares ou tiras. Para descrever as caixas, as seguintes propriedades – que vocês já devem conhecer – são usadas:

width – largura do elemento
height – altura do elemento
left – afastamento à esquerda
right – afastamento à direita
top – afastamento para cima
bottom – afastamento para baixo
margin – margem externa
border – borda do elemento
padding – preenchimento interno, ou seja, a distância da borda para o conteúdo do elemento

Essas propriedades já foram apresentadas.

A largura total de um elemento é a soma da largura das respectivas medidas. (O mesmo vale para a altura).

Um exemplo:

div#box {
   width: 100px;
   padding: 20px;     /* 20px para a esquerda e direita /
   border: 2px sólido; / 2px para esquerda e direita  /
   margin: 0 30px;    / 30px para esquerda e direita */
 }

Qual a largura deste bloco div? Vamos analisar os valores individuais:

• 100 pixels

• 2 vezes 20 pixels

• 2 vezes 2 pixels

• 2 vezes 30 pixels

Isso resulta em uma largura total do elemento de 204 pixels.

A largura e altura dos elementos são determinadas por width e height. Se essas medidas não estiverem especificadas na folha de estilo, o seguinte se aplica:

• Se faltar width, a caixa será tão larga quanto o elemento envolvente exibir.

• Se faltar height, o elemento será tão alto quanto seu conteúdo.

Um exemplo:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 div#box {
    border: 1px sólido; /* 2px para esquerda e direita  */
    margin: 0 30px;    /* 30px para esquerda e direita */
    background-color:#6600CC;
 }
 </style>
 </head>
 <body>
 <div id="box">PSD-Tutorials.de</div>
 </body>
 </html>



No navegador, isso aparece da seguinte forma:

HTML & CSS para iniciantes (Parte 36): O modelo de caixa



O elemento pai do elemento div é body. Portanto, o elemento é exibido com a largura do elemento body. Quanto à altura, ela é baseada no conteúdo.

Tudo em Zero

Cada navegador possui uma folha de estilo incorporada. Nestas folhas de estilo, alguns valores padrão são definidos. Isso se aplica, por exemplo, a padding e margin. Infelizmente, esses valores padrão variam entre os diferentes navegadores. Este aspecto torna difícil obter resultados idênticos nos respectivos navegadores, especialmente em relação ao modelo de caixa. Portanto, é recomendável definir as margens fornecidas pelos navegadores como zero. Isso pode ser feito da seguinte maneira:

* { padding: 0; margin: 0; }



Adicione essa linha no início da sua folha de estilo. Desta forma, você poderá começar a posicionar as caixas nos locais desejados.

Tipos de Caixas

Como um elemento é finalmente exibido e como influencia outros elementos depende do tipo de elemento. Na verdade, a especificação CSS diferencia entre elementos de bloco e elementos inline. (Existem outros tipos, que não serão considerados aqui, pois desempenham um papel secundário).

Elementos de bloco sempre geram uma nova linha. Elementos subsequentes também começam em uma nova linha. Elementos de bloco típicos incluem, por exemplo, p, div, h1, ul, etc. Para esses elementos, as propriedades de margem externa, margem interna, altura, largura e borda listadas anteriormente são aplicadas.

<h1>Digital Painting & Matte Painting: Definindo a estrutura da imagem</h1>
<p>Módulo 2 - Parte 2: Uma imagem é sempre um todo. No entanto, é preciso considerar sempre onde o observador deve primeiro olhar.</p>

Uma olhada no resultado no navegador mostra que h1 e p geram uma nova linha cada.

HTML & CSS para iniciantes (Parte 36): O modelo de caixa.



Por outro lado, elementos inline não geram um parágrafo separado, mas são exibidos no fluxo normal de texto. Elementos inline típicos são span, em, strong, img, br, etc. Para elementos inline, não são aplicadas margens externas verticais nem medidas de largura e altura.

<h1><em>Digital Painting & Matte Painting</em>: Definindo a estrutura da imagem</h1>

<p>Módulo 2 - Parte dois: <strong>Uma imagem é sempre um todo</strong>. No entanto, é preciso considerar sempre onde o observador deve primeiro olhar.</p>

E também aqui fica um olhar sobre o resultado:

HTML & CSS para iniciantes (Parte 36): O Modelo de Caixa



Vocês podem transformar elementos, que são na realidade elementos de bloco, em elementos inline.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Módulo 2 - Parte 2: <em>Uma imagem é sempre um todo</em>. No entanto, é sempre necessário considerar para onde o observador deve olhar primeiro.</p>
 </body>
 </html>

Visualizem o resultado no navegador.

HTML & CSS para iniciantes (Parte 36): O Modelo de Caixa



A cor de fundo do título h1 sinaliza que o elemento ocupa toda a largura. A largura é orientada pelo elemento pai body.

Agora entra em jogo a propriedade display.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 display:inline;
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Módulo 2 - Parte 2: <em>Uma imagem é sempre um todo</em>. No entanto, é sempre necessário considerar para onde o observador deve olhar primeiro.</p>
 </body>
 </html>



Ao utilizar display: inline, a largura do elemento é alterada.

HTML & CSS para iniciantes (Parte 36): O Modelo de Caixas

Na realidade, a largura do elemento agora se ajusta ao conteúdo existente. Aqui está uma visão geral dos valores que podem ser atribuídos ao display:

none – sem exibição

block – o elemento é exibido como um elemento de bloco, criando assim uma nova linha.

inline – o elemento é exibido como um elemento inline, aparecendo no fluxo do texto.

inline-block – cria externamente um bloco, no qual altura, largura e margens externas podem ser especificadas. No entanto, cada elemento permanece no fluxo do texto. Portanto, é uma combinação de um elemento de bloco e um elemento inline.

list-item – o elemento é exibido como um elemento de bloco. No entanto, um marcador de lista é adicionado à frente dele.

run-in – cria um elemento de bloco ou inline dependendo do conteúdo.

table – funciona como o elemento table conhecido em HTML.

inline-table – funciona como o elemento table em HTML, mas inline.

table-row – o elemento contém elementos filhos arranjados horizontalmente, funcionando como o elemento tr em HTML.

table-cell – o elemento representa uma célula de tabela e funciona como os elementos th e td em HTML.

table-row-group – o elemento contém um grupo de elementos com vários elementos filhos arranjados horizontalmente e funciona como o elemento tbody em HTML.

table-header-group – o elemento contém um grupo de elementos com vários elementos filhos arranjados horizontalmente e funciona como o elemento thead em HTML.

table-footer-group – o elemento contém um grupo de elementos com vários elementos filhos arranjados horizontalmente e funciona como o elemento tfoot em HTML.

table-column – descreve as propriedades das células de uma coluna. O table-column funciona como o elemento col em HTML.

table-column-group – este elemento contém um grupo de elementos que descrevem as propriedades das células de uma coluna. Funciona como o elemento colgroup em HTML.

table-caption – define o cabeçalho da tabela. A propriedade funciona como o elemento caption em HTML.

De fato, o CSS oferece diferentes opções de exibição para vários tipos de elementos. Essas opções desempenham um papel crucial na posição dos elementos. Mais informações nos próximos tutoriais.