W3docs

Proprietà CSS place-items

La proprietà place-items è una scorciatoia per align-items e justify-items. Scopri i valori e prova gli esempi.

La proprietà CSS place-items è una scorciatoia che imposta due proprietà di allineamento contemporaneamente:

  • align-items — allineamento lungo l'asse block (in un layout predefinito, la direzione verticale/colonna).
  • justify-items — allineamento lungo l'asse inline (in un layout predefinito, la direzione orizzontale/riga).

Invece di scrivere entrambe le proprietà, si scrive una sola dichiarazione place-items. Risulta particolarmente utile con i layout Grid, dove controlla come ogni elemento è posizionato all'interno della propria cella della griglia (le impostazioni di allineamento predefinite applicate a ogni elemento, equivalenti all'impostazione di place-self su ciascuno).

Questa pagina tratta la sintassi, le forme a uno e due valori, ogni valore con il suo significato pratico e i layout in cui place-items non ha effetto.

Quando si applica place-items?

place-items ha effetto solo nei layout che hanno un concetto di "elementi":

  • Layout Grid — il caso d'uso principale. Allinea ogni elemento all'interno della propria area della griglia.
  • Box con posizionamento assoluto — allinea il box all'interno del suo blocco contenitore.

Viene ignorato nei seguenti casi, che sono una fonte comune di confusione:

  • Layout Flexboxjustify-items (e quindi la metà inline di place-items) non ha effetto in Flexbox. Usare invece justify-content e align-items direttamente.
  • Box block-level standard.
  • Celle di tabella.
Informazione

place-items si comporta in modo diverso a seconda del contesto di layout — lo stesso valore può significare cose diverse in Grid rispetto al posizionamento assoluto. La tabella dei valori qui sotto descrive ogni caso.

Valore inizialenormal legacy
Si applica aTutti gli elementi.
EreditatoNo.
AnimabileNo.
VersioneCSS3
Sintassi DOMobject.style.placeItems = "normal";

Sintassi

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

Le parole chiave accettate sono:

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

Esistono due forme:

  • Un valore — imposta entrambi gli assi. place-items: center; significa "centra verticalmente e centra orizzontalmente."
  • Due valori — il primo imposta align-items (asse block), il secondo imposta justify-items (asse inline). Ad esempio, place-items: start end; significa "in alto verticalmente, a destra orizzontalmente."
Informazione

La specifica CSS Grid separa i due valori con uno spazio (place-items: start end), non con una barra. Nelle risorse più datate si può ancora trovare la barra; la forma a valore singolo è quella più sicura e più supportata.

Esempio — valore singolo (start)

Una singola parola chiave allinea gli elementi su entrambi gli assi contemporaneamente. Qui start spinge l'elemento nell'angolo in alto a sinistra della sua cella della griglia:

<!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>

Risultato

SS place-items another

Esempio — due valori (end start)

Con due parole chiave si controlla ogni asse in modo indipendente. Qui end start posiziona l'elemento in basso (asse block) e a sinistra (asse 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>

Esempio — valore center

Una singola parola chiave center centra ogni elemento sia verticalmente che orizzontalmente all'interno della sua cella della griglia:

<!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>

Valori

ValoreDescrizione
autoSe il box non ha un elemento padre, o è posizionato in modo assoluto, il valore "auto" equivale a "normal".
normalL'effetto di questo valore dipende dalla modalità di layout: - Nei layout block-level il valore "normal" si comporta come "start". - Nei layout con posizionamento assoluto, questo valore si comporta come "start" per i box sostituiti con posizionamento assoluto, e come stretch per tutti gli altri box con posizionamento assoluto. - Nei layout con celle di tabella, questa proprietà viene ignorata. - Nei layout Flexbox, questa proprietà viene ignorata. - Nei layout Grid, questo valore si comporta come "stretch", tranne che per i box con un rapporto d'aspetto o dimensioni intrinseche, dove si comporta come "start".
startAllinea l'elemento al bordo iniziale della sua area della griglia (in alto sull'asse block, a sinistra sull'asse inline in un layout da sinistra a destra).
endAllinea l'elemento al bordo finale della sua area della griglia (in basso sull'asse block, a destra sull'asse inline in un layout da sinistra a destra).
self-startAll'elemento è consentito posizionarsi sul bordo del contenitore in base al proprio lato iniziale.
self-endAll'elemento è consentito posizionarsi sul bordo del contenitore in base al proprio lato finale.
centerGli elementi sono posizionati uno accanto all'altro verso il centro del contenitore.
leftGli elementi sono posizionati uno accanto all'altro verso il lato sinistro del contenitore. Se l'asse della proprietà non è parallelo all'asse inline, questo valore si comporta come "end".
rightGli elementi sono posizionati uno accanto all'altro verso il lato destro del contenitore. Se l'asse della proprietà non è parallelo all'asse inline, questo valore si comporta come "start".
baselineAllinea tutti gli elementi all'interno di un gruppo facendo corrispondere le loro linee di base di allineamento.
first baselineAllinea la prima linea di base dell'elemento con la prima linea di base della riga.
last baselineAllinea l'ultima linea di base dell'elemento con l'ultima linea di base della riga.
stretchEstende l'elemento verso entrambi i bordi del contenitore verticalmente e orizzontalmente per adattarsi al contenitore.
initialImposta la proprietà al suo valore predefinito.
inheritEredita la proprietà dall'elemento padre.

Proprietà correlate

  • align-items — la metà dell'asse block di questa scorciatoia.
  • justify-items — la metà dell'asse inline di questa scorciatoia.
  • grid — il layout in cui place-items è più utile.
  • justify-content — la proprietà da usare in alternativa in Flexbox.

Esercitazione

Pratica
Cosa fa la proprietà 'place-items' in CSS?
Cosa fa la proprietà 'place-items' in CSS?
Was this page helpful?