W3docs

Propriedade CSS place-items

A propriedade place-items é um atalho para definir align-items e justify-items em CSS. Veja os valores e experimente os exemplos.

A propriedade CSS place-items é um atalho que define duas propriedades de alinhamento de uma vez:

  • align-items — alinhamento ao longo do eixo de bloco (em um layout padrão, a direção vertical/coluna).
  • justify-items — alinhamento ao longo do eixo inline (em um layout padrão, a direção horizontal/linha).

Em vez de escrever ambas as propriedades separadamente, você escreve uma única declaração place-items. Isso é mais útil em layouts Grid, onde controla como cada item é posicionado dentro de sua própria célula de grade (os padrões de alinhamento aplicados a cada item, equivalente a definir place-self em cada um).

Esta página aborda a sintaxe, as formas com um e dois valores, cada valor com o que ele realmente faz e os layouts onde place-items não tem efeito.

Quando place-items se aplica?

place-items só tem efeito em layouts que possuem a noção de "itens":

  • Layouts Grid — o caso de uso principal. Alinha cada item dentro de sua área de grade.
  • Caixas com posicionamento absoluto — alinha a caixa dentro de seu bloco de contenção.

É ignorado nos seguintes casos, o que é uma fonte comum de confusão:

  • Layouts Flexboxjustify-items (e, portanto, a metade inline de place-items) não tem efeito no Flexbox. Use justify-content e align-items diretamente.
  • Caixas em nível de bloco padrão.
  • Células de tabela.
Informação

place-items se comporta de forma diferente dependendo do contexto de layout — o mesmo valor pode significar coisas diferentes no Grid versus no posicionamento absoluto. A tabela de Valores abaixo detalha cada caso.

Valor Inicialnormal legacy
Aplica-se aTodos os elementos.
HerdadoNão.
AnimávelNão.
VersãoCSS3
Sintaxe DOMobject.style.placeItems = "normal";

Sintaxe

place-items: <align-items> <justify-items>?;

As palavras-chave aceitas são:

place-items: auto | normal | start | end | self-start | self-end | center | left | right | baseline | first baseline | last baseline | stretch | initial | inherit;

Existem duas formas:

  • Um valor — define ambos os eixos. place-items: center; significa "centralizar verticalmente e centralizar horizontalmente."
  • Dois valores — o primeiro define align-items (eixo de bloco), o segundo define justify-items (eixo inline). Por exemplo, place-items: start end; significa "topo verticalmente, direita horizontalmente."
Informação

A especificação do CSS Grid separa os dois valores com um espaço (place-items: start end), não com uma barra. Você ainda pode ver uma barra em materiais mais antigos; um único valor é a forma mais segura e com maior suporte.

Exemplo — valor único (start)

Uma única palavra-chave alinha os itens em ambos os eixos ao mesmo tempo. Aqui start empurra o item para o canto superior esquerdo de sua célula de grade:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      #container {
        height: 150px;
        width: 150px;
        place-items: start;
        background-color: #ccc;
        display: grid;
      }
      div > div {
        box-sizing: border-box;
        border: 1px solid #666;
        width: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #box1 {
        background-color: #1c87c9;
        min-height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Place-items property example</h2>
    <h3>place-items: start</h3>
    <div id="container">
      <div id="box1">1</div>
    </div>
  </body>
</html>

Resultado

SS place-items another

Exemplo — dois valores (end start)

Com duas palavras-chave você controla cada eixo de forma independente. Aqui end start envia o item para a parte inferior (eixo de bloco) e para a esquerda (eixo inline):

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      #container {
        height: 150px;
        width: 150px;
        place-items: end start;
        background-color: #ccc;
        display: grid;
      }
      div > div {
        box-sizing: border-box;
        border: 1px solid #666;
        width: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #box1 {
        background-color: #8ebf42;
        min-height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>place-items: end start</h2>
    <div id="container">
      <div id="box1">1</div>
    </div>
  </body>
</html>

Exemplo — valor center

Uma única palavra-chave center centraliza cada item tanto verticalmente quanto horizontalmente dentro de sua célula de grade:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document </title>
    <style>
      #container {
        height: 200px;
        width: 230px;
        place-items: center;
        background-color: #ccc;
        display: grid;
      }
      .grid {
        display: grid;
      }
      div > div {
        box-sizing: border-box;
        border: 3px solid #ccc;
        width: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      #box1 {
        background-color: #666;
        min-height: 40px;
      }
      #box2 {
        background-color: #1c87c9;
        min-height: 50px;
      }
      #box3 {
        background-color: #fff;
        min-height: 40px;
      }
      #box4 {
        background-color: #ff0000;
        min-height: 60px;
      }
      #box5 {
        background-color: #eee;
        min-height: 70px;
      }
      #box6 {
        background-color: #8ebf42;
        min-height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Place-items property example</h2>
    <div id="container" class="grid">
      <div id="box1">1</div>
      <div id="box2">2</div>
      <div id="box3">3</div>
      <div id="box4">4</div>
      <div id="box5">5</div>
      <div id="box6">6</div>
    </div>
  </body>
</html>

Valores

ValorDescrição
autoSe a caixa não tem um pai, ou está posicionada de forma absoluta, o valor "auto" representa "normal".
normalO efeito deste valor depende do modo de layout: - Em layouts em nível de bloco, o valor "normal" se comporta como "start". - Em layouts com posicionamento absoluto, este valor se comporta como "start" em caixas absolutamente posicionadas substituídas, e como stretch em todas as outras caixas absolutamente posicionadas. - Em layouts de células de tabela, esta propriedade é ignorada. - Em layouts Flexbox, esta propriedade é ignorada. - Em layouts Grid, este valor se comporta como "stretch", exceto para caixas com uma proporção de aspecto ou tamanhos intrínsecos onde se comporta como "start".
startAlinha o item à borda inicial de sua área de grade (topo no eixo de bloco, esquerda no eixo inline em um layout da esquerda para a direita).
endAlinha o item à borda final de sua área de grade (base no eixo de bloco, direita no eixo inline em um layout da esquerda para a direita).
self-startO item pode se posicionar na borda do contêiner com base em seu próprio lado inicial.
self-endO item pode se posicionar na borda do contêiner com base em seu próprio lado final.
centerOs itens são posicionados próximos uns dos outros em direção ao centro do contêiner.
leftOs itens são colocados próximos uns dos outros em direção ao lado esquerdo do contêiner. Se o eixo da propriedade não for paralelo ao eixo inline, este valor se comporta como "end".
rightOs itens são colocados próximos uns dos outros em direção ao lado direito do contêiner. Se o eixo da propriedade não for paralelo ao eixo inline, este valor se comporta como "start".
baselineAlinha todos os elementos dentro de um grupo fazendo corresponder suas linhas de base de alinhamento.
first baselineAlinha a primeira linha de base do elemento com a primeira linha de base da linha.
last baselineAlinha a última linha de base do elemento com a última linha de base da linha.
stretchEstica o elemento para ambas as bordas do contêiner vertical e horizontalmente para preencher o contêiner.
initialFaz a propriedade usar seu valor padrão.
inheritHerda a propriedade de seu elemento pai.

Propriedades relacionadas

  • align-items — a metade do eixo de bloco deste atalho.
  • justify-items — a metade do eixo inline deste atalho.
  • grid — o layout onde place-items é mais útil.
  • justify-content — o que usar em vez disso no Flexbox.

Prática

Prática
O que a propriedade 'place-items' no CSS faz?
O que a propriedade 'place-items' no CSS faz?
Was this page helpful?