Como alinhar algo em html: 10 passos (com imagens)

Organizar o feed do Instagram tem sido uma preocupação de muitos usuários da plataforma. Para fazer sucesso na rede social de compartilhamento de fotos e vídeos, postar fotos legais e bem feitas não é mais suficiente. Agora ter o perfil com imagens que apareçam de forma harmoniosa tem sido cada vez mais requisitado.

Dez truques para dominar o Instagram

Para quem tem esta preocupação estética, existem diversas saídas: usar o mesmo filtro, aplicativos terceiros, fazer mosaicos e mais. Não faltam boas soluções para deixar tudo com uma aparência uniformizada, simétrica e bem arrumada. Se interessou? Confira, a seguir, dez dicas que podem ajudar:

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Confira dez dicas para deixar o feed do Instagram organizado e harmonioso (Foto: Luciana Maline/TechTudo)

Quer comprar celular, TV e outros produtos com desconto? Conheça o Compare TechTudo

Dica 1: Aplicativo UNUM

O aplicativo UNUM, disponível apenas para iPhone (iOS), simula um feed de fotos igual ao do Instagram, de forma que você pode adicionar novas imagens e visualizar como elas vão ficar quando forem postadas. Assim, é possível visualizar se há harmonia entre as imagens que deseja postar e as que foram publicadas, pois o app mostra também as fotos que já estão no ar.

Como Alinhar Algo em HTML: 10 Passos (com Imagens)UNUM ajuda a organizar feed do Instagram (Foto: Carolina Oliveira/TechTudo)

Além disso, esse aplicativo também ajuda a monitorar o sucesso de contas na rede social, por meio de dados como posts mais curtidos, mais comentados, hashtags mais usadas e até o melhor horário para publicar no Instagram. 

Dica 2: Filtros

Para deixar o feed do Instagram organizado, é interessante que as fotos conversam entre si, que haja alguma conexão entre elas. Usar o mesmo filtro em todas as fotos, ou efeitos que sejam semelhantes, é a saída usada por muitas blogueiras.

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Feed do Instagram usa só um filtro (Foto: Carolina Oliveira/TechTudo)

Dica 3: Coloração semelhante

Se você não curte a ideia de se restringir a um só filtro, uma boa aposta é publicar fotos e vídeos que tenham a mesma coloração predominante, como é o caso dos “feeds brancos”, por exemplo. Ter em todas as imagens um elemento de uma mesma cor também é uma solução que faz sucesso no Instagram.

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Feed Instagram usa tons brancos para criar harmonia entre as fotos (Foto: Carolina Oliveira/TechTudo)

Dica 4: Mesmo recorte

Usar o mesmo recorte é uma opção para manter a ordem. Com essa prática, as imagens ganham uniformidade e quem visualiza percebe que há uma preocupação estética do dono, já que todas ficam com uma borda igual. Essa dica já fez mais sucesso, quando o Instagram só aceitava fotos em formato quadrado e os usuários usavam aplicativos externos que colocavam bordas nas fotos.

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Feed do Instagram usa mesmo recorte com bordas brancas em todas as fotos (Foto: Carolina Oliveira/TechTudo)

Dica 5: Feed temático

Organizar o feed por temas como comida, paisagem, pessoas, tatuagens, cães, roupas e mais uma infinidade de assuntos, ajuda na harmonia. É possível fazer isso postando de três em três fotos com o mesmo tema para que formem linhas, ou então dedicar uma conta para só um assunto.

Dica 6: Instagram “fantasma”

Essa dica não exclui as outras: a ideia consiste em criar uma conta bloqueada para outros usuários e postar nela aquilo que você pretende publicar no seu perfil. A funcionalidade é semelhante a do aplicativo UNUM, então é uma boa saída para usuários Android.

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Criar uma conta fake no Instagram é um recurso usado para ver como as fotos podem ficar quando fores postadas (Foto: Carolina Oliveira/TechTudo)

Dica 7: Procure inspirações no Pinterest

O Pinterest é fonte para inspiração de qualquer natureza e não é diferente quando se trata desse assunto. Buscas rápidas no aplicativo como “organizar feed do Instagram” e semelhantes geram uma infinidade de sugestões. Uma das mais recorrentes são ideias de filtros para uniformizar as fotos. 

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Pinterest é uma boa fonte de inspiração para arrumação do feed no Instagram (Foto: Luana Marfim/TechTudo)

Dica 8: Montagens

Outra ideia é brincar com montagens de maneira que formem um mosaico no feed. É possível, por exemplo, dividir uma mesma foto em duas, três, quatro, e assim por diante, e postá-las em ordem, para que juntas virem uma só imagem. O lado negativo é que, muitas vezes, as fotos sozinhas acabam não fazendo muito sentido. 

Como Alinhar Algo em HTML: 10 Passos (com Imagens)Feed também pode ser organizado com mosaico de imagens no Instagram (Foto: Carolina Oliveira/TechTudo)

  • Como deixar de ver publicidade/anúncios no Instagram? Confira no Fórum TechTudo
  • Dica 9: Simetria
  • Utilizar simetria pode ser uma boa opção: use imagens que brinquem com geometria, se completando ou repetindo formas geométricas com azulejos, tetos, construções arquitetônicas e afins. 
  • Dica 10: Variar 

Essa dica é mais voltada para quem escolher não fazer um feed temático. Postar muitas fotos iguais sem que haja algum critério pode estragar a aparência do feed. Oscilar nas imagens, colocando uma de paisagem, outra com amigos, outra de selfie, outra de comida, e por aí vai, faz o feed ficar, além de bonito, dinâmico e interessante. 

Aplicativo do TechTudo: receba as melhores dicas e últimas notícias no seu celular

CSS básico

Anterior Menu: Getting started with the web Próxima

Assim como o HTML, o CSS não é realmente uma linguagem de programação. Também não é uma linguagem de marcação  — é uma linguagem de folhas de estilos.

Isso significa que o CSS permite aplicar estilos seletivamente a elementos em documentos HTML.

Por exemplo, para selecionar todos os elementos parágrafo de uma página HTML e tornar o texto dentro deles vermelho, você escreveria este CSS:

p {
color: red;
}

Vamos tentar: cole as três linhas de CSS acima em um novo arquivo, no seu editor de texto, e salve o arquivo como estilo.css na sua pasta estilos.

Ainda assim, precisamos aplicar o CSS ao seu documento HTML. Do contrário, o estilo CSS não irá afetar a maneira como o seu navegador mostra seu documento HTML (se você não estiver acompanhando o nosso projeto, leia Lidando com arquivos e HTML básico para descobrir o que você precisa fazer primeiro).

  1. Abra seu arquivo index.html e cole o seguinte código em algum lugar no cabeçalho, ou seja, entre as tags :
  2. Salve o arquivo index.html e abra ele no seu navegador. Você deve ver uma página como essa:

Como Alinhar Algo em HTML: 10 Passos (com Imagens)

Anatomia de um conjunto de regras CSS

Vamos dar uma olhada no CSS acima com mais detalhes:

Como Alinhar Algo em HTML: 10 Passos (com Imagens)

Toda essa estrutura é chamada de conjunto de regras (mas geralmente usamos o termo “regra”, por ser mais curto). Note os nomes das partes individuais:

Seletor (Selector) O nome do elemento HTML no começo do conjunto de regras. Ele seleciona o(s) elemento(s) a serem estilizados (nesse caso, elementos

). Para dar estilo a um outro elemento, é só mudar o seletor. Declaração (Declaration) Uma regra simples como color: red; especificando quais das propriedades do elemento você quer estilizar. Propriedades (Property) Forma pela qual você estiliza um elemento HTML. (Nesse caso, color é uma propriedade dos elementos

Leia também:  Como a gar uma conta da amazon: 12 passos (com imagens)

.

) Em CSS, você escolhe quais propriedades você deseja afetar com sua regra. Valor da propriedade (Property value) À direita da propriedade, depois dos dois pontos, nós temos o valor de propriedade, que escolhe uma dentre muitas aparências possíveis para uma determinada propriedade (há muitos valores color(cor) além do red(vermelho)).

Note outras partes importantes da sintaxe:

  • Cada linha de comando deve ser envolvida em chaves ({}).
  • Dentro de cada declaração, você deve usar dois pontos (:) para separar a propriedade de seus valores.
  • Dentro de cada conjunto de regras, você deve usar um ponto e vírgula (;) para separar cada declaração da próxima.

Então para modificar múltiplos valores de propriedades de uma vez, você deve escrevê-los separados por ponto e vírgula, desse modo:

p {
color: red;
width: 500px;
border: 1px solid black;
}

Selecionando múltiplos elementos

Você também pode selecionar vários tipos de elementos e aplicar um único conjunto de regras a todos eles. Inclua múltiplos seletores separados por vírgulas. Por exemplo:

p, li, h1 {
color: red;
}

Diferentes tipos de seletores

Há muitos tipos diferentes de seletores. Abaixo, nós mostramos apenas os seletores de elementos, que selecionam todos os elementos de um determinado tipo nos documentos HTML. Mas nós podemos fazer seleções mais específicas que essas. Aqui estão alguns dos tipos mais comuns de seletores:

Nome do seletor O que ele seleciona Exemplo
Seletor de elemento (às vezes, chamado tag ou seletor de tipo) Todos os elementos HTML de determinado tipo. p Seleciona
Seletor de ID O elemento na página com o ID específicado. Em uma determinada página HTML, é uma boa prática usar um elemento por ID (e claro, um ID por elemento) mesmo que seja permitido usar o mesmo ID para vários elementos. #my-id Seleciona ou
Seletor de classe O(s) elemento(s) na página com a classe específicada (várias instâncias de classe podem aparecer em uma página). .my-class Seleciona e
Seletor de atributo O(s) elemento(s) na página com o atributo especificado. img[src] Seleciona mas não
Seletor de pseudo-classe O(s) elemento(s) específicado(s), mas somente quando estiver no estado especificado. Ex.: com o mouse sobre ele. a:hover Seleciona , mas somente quando o mouse está em cima do link.

Há muito mais seletores para explorar e você pode achar uma lista mais detalhada em nosso Guia de seletores.

Fontes e texto

Agora que exploramos algumas noções básicas de CSS, vamos começar a adicionar mais regras e informações no nosso arquivo estilo.css para deixar nosso exemplo bonito. Vamos começar fazendo nossas fontes e textos parecerem um pouco melhores.

Como criar um slider com CSS e HTML

O slider é um elemento visual muito comum em aplicações web, principalmente àquelas que exibem muitas imagens, possibilitando uma melhor experiência ao usuário.

Entretanto, a utilização massiva de JavaScript pode prejudicar o desempenho do website, especialmente em dispositivos móveis.

Assim, sempre que possível, uma ótima opção é aproveitar os recursos do CSS3 para a criação de elementos visuais sem a necessidade de JavaScript.

Passo 1 – Montar o HTML

Antes de começarmos a montar o nosso slider, é interessante conheceremos exatamente o que é, conforme apresentado na Figura 1. Note que trata-se de algo que tende a melhorar a experiência do usuário dentro do website, ao possibilitar a exibição de diferentes informações, através de imagens, no mesmo local, e com recursos simples de animação.

Figura 1. Exemplo de slider

O passo mais simples na criação de um slider é o HTML. Aqui, criaremos um slider com apenas três imagens, mas a implementação realizada é a mesma independentemente dessa quantidade: basta replicar os passos para todas elas.

A proposta inicial do HTML traz uma lista não-ordenada (

    , do inglês unordered list) com vários elementos (

  • , list item) contendo nossas imagens. Esse HTML, apresentado na Listagem 1, será melhorado quando precisarmos definir a navegação entre as imagens no slider. 01
      02

    • 03
      04
    • 05

    • 06
      07
    • 08

    • 09
      10
    • 11

    Listagem 1. HTML básico para o slider

    • Linha 01: Define nossa lista não-ordenada de imagens. Observe que a mesma possui a classe slider, que será utilizada para adicionar estilos posteriormente;
    • Linhas 02 a 04, 05 a 07 e 08 a 10: Itens da lista contendo as imagens 1, 2 e 3, respectivamente. Note que utilizamos o caminho relativo do diretório “images” para todas elas;
    • Linha 11: Fechamento da lista não-ordenada de imagens.

    Passo 2 – Definir os estilos

    Com nosso HTML inicial pronto, podemos começar a definir os estilos que serão aplicados ao slider. Para garantirmos um design responsivo, o primeiro passo é assegurar o reset dos elementos através do CSS. Isso é feito de forma bastante simples, através da seguinte linha de estilos:

    * { margin: 0; padding: 0; }

    Note que simplesmente zeramos a margem e a margem interna (padding) de todos os elementos do DOM. Isso faz com que o comportamento seja o mesmo em qualquer navegador, algo essencial para a responsividade.

    O próximo passo é adicionar os estilos básicos para nosso slider, o que pode ser visto na Listagem 2. É válido ressaltar que esses estilos são relativamente simples e ainda não definem a forma como o slider irá se comportar. Isso será realizado posteriormente.

    01 .slider {
    02 display: block;
    03 height: 293px;
    04 width: 600px;
    05 margin: auto;
    06 margin-top: 20px;
    07 position: relative;
    08 }
    09
    10 .slider li {
    11 list-style: none;
    12 position: absolute;
    13 }
    14
    15 .slider img {
    16 margin: auto;
    17 height: 100%;
    18 width: 100%;
    19 vertical-align: top;
    20 }

    Listagem 2. CSS básico para o slider

    Linhas 01 a 08: Definição da classe slider, a classe base para o estilo do elemento que estamos criando. Aqui, especificamos os principais parâmetros que serão necessários para o visual do elemento.

    A altura (height) e a largura (width) estão setadas com esses valores (293 e 600px, respectivamente) devido ao tamanho das imagens, mas poderiam ser outros valores.

    Note, ainda, que temos uma margem em relação ao topo (margin-top), para garantir um melhor visual do slider com relação à página;

    Linhas 10 a 13: Definição do elemento li filho da classe slider. Essa técnica de CSS indica que todo elemento li que está presente dentro de outro elemento com a classe slider receberá esse estilo.

    Como podemos notar pela Listagem 1, esse é nosso caso. Assim, o estilo será aplicado a todos os itens da lista.

    O estilo em si é muito simples: evita-se o estilo padrão (list-style: none;) e garante-se um posicionamento absoluto, ou seja, com relação à página;

    Linhas 15 a 20: Definição do elemento img filho da classe slider. A técnica é equivalente ao que vimos na linha 10. Nesse caso, definimos o estilo para as imagens. A propriedade “margin: auto;” serve para centralizar o elemento.

    A largura e a altura em 100% sinalizam para a imagem tomar toda a largura do container: no caso, 600 e 293px, respectivamente (valores da classe slider).

    Por fim, “vertical-align: top;” indica que a imagem ficará alinhada verticalmente com relação ao seu topo.

    Passo 3 – Preparar os elementos de navegação entre os slides

    A navegação entre os slides é o passo mais interessante na criação do slider. Para isso, fazemos uso de uma técnica chamada de checkbox hack, ou hack do checkbox.

    Essa técnica, do CSS3, é utilizada para, a partir de um label conectado a um checkbox, controlar um terceiro elemento.

    É importante, no entanto, que os três estejam adjacentes, para simplificar o CSS para controle desses elementos.

    Dessa forma, para fazer com que esse “hack” funcione, precisaremos alterar nosso HTML, que ficará como mostrado na Listagem 3. Repare que mantemos a base da Listagem 1 e simplesmente adicionamos os elementos necessários (um input do tipo radio e um label) para que a navegação funcione.

    01

      02

    • 03
      04
      05
      06
    • 07

    • 08
      09
      10
      11
    • 12

    • 13
      14
      15
      16
    • 17

    Listagem 3. HTML completo para o slider

    Linhas 03 e 04, 08 e 09 e 13 e 14: Definição do hack para os slides. Para que essa técnica funcione, é essencial que o label possua o atributo for definido com o mesmo id do botão de rádio. É essa conexão que fará com que as ações do usuário em cima do label de fato selecionem o botão.

    Agora que temos nosso HTML pronto, precisamos definir o CSS que fará com que isso funcione de fato. O primeiro ponto é esconder todos os “inputs”, fazendo com que somente o label apareça. Como veremos, isso é muito simples, e pode ser feito com um código como o apresentado abaixo, em que simplesmente setamos a propriedade display para none, ou seja, nenhuma amostragem visual do elemento.

    .slider input {
    display: none;
    }

    Na sequência, fazemos a definição do estilo que nossos labels terão: como botões na cor preta e no canto inferior esquerdo das imagens.

    Isso é definido de forma relativamente simples, como podemos observar na Listagem 4.

    Como podemos notar, fizemos uso de alguns itens bem interessantes do CSS, como o nth_child(n), para buscar o primeiro, segundo e terceiro filhos de uma determinada classe ou elemento.

    01 .slider label {
    02 background-color: #000;
    03 bottom: 10px;
    04 cursor: pointer;
    05 display: block;
    06 height: 10px;
    07 position: absolute;
    08 width: 10px;
    09 z-index: 10;
    10 }
    11
    12 .slider li:nth-child(1) label {
    13 left: 10px;
    14 }
    15
    16 .slider li:nth-child(2) label {
    17 left: 40px;
    18 }
    19
    20 .slider li:nth-child(3) label {
    21 left: 70px;
    22 }

    Listagem 4. CSS para definição do visual dos elementos de navegação do slider

    Linha 01: Definição do estilo do label filho da classe slider.

    Linhas 02 a 09: Algumas definições visuais. Primeiramente, a cor de fundo (preto, em background-color). Como temos um posicionamento absoluto (position: absolute), a linha 03 traz a definição da distância com relação à base: 10 pixels. Na linha 04, há a definição do cursor para esses elementos.

    Para mostrar para o usuário que são clicáveis, o valor é o pointer (a mão que aparece em links, por exemplo). No mais, temos outras definições simples de altura (height) e largura (width), e visualização (display).

    Além disso, a linha 09 traz a definição do z-index, que garante que os labels serão mostrados sobre as imagens em qualquer circunstância;

    Linhas 12 a 14, 16 a 18 e 20 a 22: aqui, utiliza-se o método nth_child(n) para definir o posicionamento de cada um dos labels, do contrário, eles seriam posicionados um sobre o outro.

    Assim, primeiramente buscamos o primeiro filho do tipo label de li (nth_child(1)) e definimos o posicionamento 10px à esquerda, com a propriedade left.

    O mesmo é feito para o segundo (nth_child(2), 40 pixels) e terceiro (nth_child(3), 70 pixels) filhos.

    Com isso, temos o visual final do slider como o mostrado na Figura 2. Note, como definido anteriormente, que os labels estão posicionados no canto inferior esquerdo da imagem, e o slider, centralizado. Esse slider, no entanto, ainda não tem nenhum comportamento atrelado.

    Figura 2. Visual final do slider

    Passo 4 – Navegar entre os slides

    Os elementos de navegação estão prontos. Agora, basta completarmos o checkbox hack para viabilizar a navegação.

    Para isso, a ideia é relativamente simples: escondemos as imagens, todas elas, e garantimos que somente uma será mostrada por vez.

    Utilizaremos, portanto, o input do tipo radio que definimos anteriormente: se está definido como checked, mostra a imagem; caso contrário, não. Assim, temos nosso slider pronto.

    Esse comportamento pode ser implementado através de CSS, como demonstra a Listagem 5. Na linha 06, é importante destacarmos o ~.

    O CSS3 possui esse seletor para permitir que lidemos com os relacionamentos entre os elementos. Esse se refere a qualquer elemento irmão (no mesmo nível de hierarquia, filho do mesmo pai).

    Nesse código, temos que o elemento img, irmão do input marcado como checked, terá as características definidas nas linhas 07, 08 e 09.

    01 .slider img {
    02 opacity: 0;
    03 visibility: hidden;
    04 }
    05
    06 .slider li input:checked ~ img {
    07 opacity: 1;
    08 visibility: visible;
    09 z-index: 10;
    10 }

    Listagem 5. CSS para garantir o comportamento de navegação entre as imagens do slider

    Linhas 01 a 04: Esconde as imagens filhas do slider. Repare que isso é feito para todas as imagens. A exibição de apenas uma delas ocorrerá posteriormente;

    Linha 06: Definição da propriedade de navegação. Dessa forma, os estilos aqui especificados serão aplicados somente para a imagem referente ao input que está marcado como checked;

    Linhas 07 e 08: Fazem com que a imagem esteja visível, ao resetar os valores de opacity e visibility da mesma;

    Linha 09: Índice da imagem com relação ao eixo z. Note que o valor é o mesmo que vimos para o label, o que poderia gerar algum problema visual, fazendo com que o label fosse escondido pela imagem. Nesse caso, porém, não há problema, uma vez que, no HTML, o elemento está posicionado acima do elemento . Dessa forma, o mesmo tem prioridade.

    Com isso, concluímos a implementação do nosso slider utilizando somente HTML e CSS.

    Note que não escrevemos uma linha de código JavaScript, o que faz com que ele seja mais simples e portável, especialmente em dispositivos móveis.

    Além disso, o CSS é extremamente poderoso, e podemos utilizá-lo de forma a criar transições, por exemplo, para fazer com que a navegação seja mais sutil e visualmente mais interessante.

    Curso relacionado: HTML Básico

    Folhas de estilos CSS dicas & truques

    Ver index para todas as dicas.

    Centrar textos de títulos ou parágrafos é a mais simples e comum tarefa de centralização. Basta usar a propriedade CSS 'text-align', conforme mostrado a seguir:

    P { text-align: center }
    H2 { text-align: center }

    As regras CSS mostradas renderizam cada uma das linhas de P ou de H2 centralizadas na horizontal conforme mostrado a seguir:

    Todas as linhas desse parágrafo estão centralizadas na horizontal, entre as margens do parágrafo graças ao valor 'center' declarado para a propriedade CSS 'text-align'.

    Outra tarefa de centralização consiste em centrar não um texto, mas um bloco como um todo. Dito de outra forma: definir margens esquerda e direirta iguais par um bloco.

    Para obter esse efeito usamos o valor 'auto' para a proriedade margin.

    É necessário que o bloco tenha uma largura fixa, pois em se tratando de blocos flexíveis ele assumira a largura total disponível. Observe o exemplo a seguir:

    P.blocktext {
    margin-left: auto;
    margin-right: auto;
    width: 6em
    }

    Esse bloco de texto…

    Esse bloco de texto com largura reduzida está centralizado. Notar que as linhas de texto do bloco não estão centralizadas (elas estão alinhadas à esquerda) ao contrário do que foi mostrado no exemplo anterior..

    Esta é, também, a técnica usada para centralizar uma imagem: defina nível de bloco para a imagem e o valor 'auto' para as margens esquerda e direita, conforme mostrado a seguir:

    IMG.displayed {
    display: block;
    margin-left: auto;
    margin-right: auto }

    ...

    CSS nível 2 não prevê uma propriedade para centrar na vertical. Provavelmente haverá uma nas CSS nível 3 (ver adiante nesta página).

    Mas, até mesmo com uso das CSS2 você poderá centralizar blocos verticalmente combinando algumas propriedades.

    O “truque” consiste em formatar o bloco de conteúdo para se comportar com célula de tabela, pois conteúdos de células de tabela podem ser centralizados na vertical em CSS2.

    O exemplo mostrado a seguir centra um parágrafo inserido em um container de determinada altura. Um exemplo em página própria mostra um parágrafo centralizado verticalmente na janela do navegador, pois o parágrafo foi posicionado de forma absoluta em um container com a altura da janela do navegador.

    DIV.container {
    min-height: 10em;
    display: table-cell;
    vertical-align: middle }

    Parágrafo curto centarlizado na vertical.

    Parágrafo curto centralizado na vertical.

    As CSS3 oferecem outras possibilidades. No ano atual (2014), uma boa solução para centralizar verticalmente sem uso de posicionamento absoluto (que pode causar “overlapping” do texto) ainda está sendo discutido.

    Mas, caso o “overlapping” do texto não seja um problema no seu documento, você poderá usar a propriedade 'transform' para centralizar um elemento posicionado de forma absoluta, como mostrado a seguir:

    Parágrafo centralizado na vertical.

    Para a marcação mostrada a seguir:

    Parágrafo…

    A folha de estilos é conforme mostrada a seguir:

    div.container3 { height: 10em; position: relative } /* 1 */
    div.container3 p { margin: 0; position: absolute; /* 2 */ top: 50%; /* 3 */ transform: translate(0, -50%) } /* 4 */

    A chave para a solução é:

    1. Declare o container posicionado de forma relativa com a finalidade de criar um contexto de posicionamento para os elementos posicionados de forma absoluta dentro dele, container.
    2. Posicione o elemento dentro do container de forma absoluta.
    3. Declare, para o elemento dentro do container, coordenada 'top' de posicionamento igual a 50%. (Notar que 'top: 50%' significa 50% da altura do container.)
    4. Use 'translation' para deslocar o elemento dentro do container de um valor igual a metade da sua (do elemento) altura. (O valor '50%' em 'translate(0, -50%)' se refere à altura do próprio elemento.)

    Recentemente (desde 2015), criou-se outra técnica em diversas implementações das CSS. Tais técnicas se baseiam no novo valor 'flex' para a propriedade 'display'.

    Esse valor foi criado para uso em interfaces gráficas de usuário (GUIs), mas nada impoede que você a use em um documento desde que o documento seja estruturado correta e adequadamente, conforme exemplo mostrado a seguir:

    Parágrafo centralizado na vertical.

    e a correspondente folha de estilos:

    div.container5 { height: 10em; display: flex; align-items: center }
    div.container5 p {
    margin: 0 }

    Podemos combinar os dois métodos mostrados anteriormente para centrar na horizontal e na vertical ao mesmo tempo.

    Um efeito colateral de se declarar o parágrafo posicionado de forma absoluta é que ele assumirá uma largura estritamente necessária (a não ser, obviamente, que se declare explicitamente uma largura).

    No exemplo mostrado a seguir é exatamente isso que queremos: Centralizamos um parágrafo com uma só palavra (“Centralizado!”) e sua largura é exatamente igual a largura da palavra.

    Observe a seguir:

    O fundo na cor amarela foi declarado com a finalidade de mostrar que a largura do parágrafo é exatamente a mesma largura do seu conteúdo (da palavra “Centralizado!”). Para o próximo exemplo considere a mesma marcação do exemplo anterior:

    Centralizado!

    Em relação a centralização vertical considere, também, a folha de estilos do exemplo anterior. Defina para o elemento P uma coordenada 'left' para a esquerda igual a 50% com uso da declaração 'left: 50%' e use a transformação 'translate' para mover o elemento 50% de sua largura para a esquerda. Observe a seguir:

    div.container4 { height: 10em; position: relative }
    div.container4 p { margin: 0; background: yellow; position: absolute; top: 50%; left: 50%; margin-right: -50%; transform: translate(-50%, -50%) }

    • No exemplo mostrado a seguir uma explicação do porquê declarar 'margin-right: -50%' é necessário.
    • Havendo suporte para CSS 'flex' fica fácil conforme mostrado a seguir:
    • e a folha de estilos:

    div.container6 { height: 10em; display: flex; align-items: center; justify-content: center }
    div.container6 p {
    margin: 0 }

    ou seja, o único acréscimo foi a declaração 'justify-content: center'.

    Tal como previsto na especificação, a funcionalidade 'align-items' controla o alinhamento vertical dos conteúdos de um container 'flex' e a funcionalidade 'justify-content' controla o alinhamento horizontal daqueles conteúdos.

    (Na realidade estas funcionalidades são um pouco mais complexas do que seus nomes sugerem, mas em resumo esse exemplo simples mostra como funciona o alinhamento com uso de 'flex'). Um efeito colateral de 'flex' é que o elemento-filho, P nesse exemplo, assume a menor largura possível.

    A viewport é o container “default” para elementos posicionados de forma absoluta. (Tratando-se de navegadores a viewport é a janela do navegador). Assim, centrar um elemento na viewport é uma tarefa bem simples. Observe a seguir um exemplo completo criado com sintaxe HTML5:

    Fantástica centralização

    Esse bloco de texto está centralizado na vertical.

    E centralizado na horizontal também, caso a janela tenha dimensões suficientes.

    Observe um exemplo em página própria.

    A declaração 'margin-right: -50%' destina-se a compensar a declaração 'left: 50%'. A propriedade 'left' subtrai 50% da largura do elemento.

    Redimensione a janela do navegador: você poderá observar que cada sentença ocupa uma linha se a largura da janela for larga o suficiente. Em larguras de janela pequenas haverá quebras de linhas. Se remover a declração 'margin-right: -50%' e redimensionar a janela vai observar que as sentenças quebrarão ainda que a janela seja duas vezes mais larga que as linhas do texto.

    (Usar 'translate' para centralizar na viewport foi proposto pela primeira vez por “Charlie” em resposta a um questionemento no Stack Overflow.)

    Navegação no site

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será publicado.


*