W3docs

Proprietà CSS min-width

Usa la proprietà CSS min-width per impostare la larghezza minima dell'area di contenuto di un elemento. Valori con esempi.

La proprietà min-width imposta la larghezza minima di un elemento. Impedisce che il valore della proprietà width scenda mai al di sotto del valore assegnato a min-width, indipendentemente da quanto diventi stretto lo spazio disponibile.

Questa pagina spiega cosa fa min-width, come interagisce con width e max-width, i valori che accetta (incluse le parole chiave min-content/max-content/fit-content) e il comune problema con Flexbox che min-width risolve.

Come min-width interagisce con width e max-width

Quando si usa min-width insieme alle proprietà width e max-width, min-width funge da limite inferiore. Il browser calcola la larghezza, poi la limita nell'intervallo min-width … max-width:

  • Se width è inferiore a min-width, l'elemento viene allargato fino a min-width.
  • Se width è superiore a max-width, l'elemento viene ristretto fino a max-width.

In altre parole, min-width ha la precedenza su un valore width inferiore, e max-width ha la precedenza su un valore min-width superiore — min-width vince sempre quando i due entrano in conflitto. Questo è ciò che permette agli elementi di rimanere leggibili pur essendo responsivi: l'elemento può crescere su schermi larghi ma non collassare mai al di sotto di una dimensione utilizzabile.

Un uso pratico comune è evitare che una colonna, una card o un pulsante diventino troppo stretti all'interno di un layout Flexbox o grid, dove i figli altrimenti si restringerebbero per adattarsi.

Informazione

I valori di lunghezza negativi non sono consentiti — min-width accetta solo 0 o una lunghezza/percentuale positiva.

Valore iniziale0
Si applica aTutti gli elementi, eccetto elementi inline non sostituiti, righe di tabella e gruppi di righe.
EreditatoNo.
AnimabileSì. La larghezza è animabile.
VersioneCSS2
Sintassi DOMobject.style.minWidth = "200px";

Sintassi

min-width: <length> | <percentage> | min-content | max-content | fit-content | auto | initial | inherit;

La proprietà accetta una lunghezza CSS (px, pt, em, rem, ecc.), una percentuale del blocco contenitore, oppure una delle parole chiave per le dimensioni intrinseche descritte nella tabella Valori qui sotto.

Esempi

Valore in percentuale

Quando min-width è una percentuale, viene risolta rispetto alla larghezza del blocco contenitore. Qui width: 10px viene ignorata perché il min-width del 70% è maggiore, quindi l'elemento viene allargato al 70% del genitore:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title of the document</title>
    <style>
      div {
        width: 10px;
        min-width: 70%;
        background-color: #1c87c9;
        color: #ffffff
      }
    </style>
  </head>
  <body>
    <div>The min-width of this text is defined as 70%.</div>
  </body>
</html>

Risultato

Rendering del browser di un div la cui larghezza viene sovrascritta da un min-width del 70 percento

Valore di lunghezza fisso

In questo esempio viene assegnato un min-width di 10cm a un elemento inline-block. È confrontato con un semplice span che ha min-width: 0, in modo da vedere come il limite inferiore costringe il secondo box a rimanere largo almeno 10cm anche se il testo è breve:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title of the document</title>
    <style>
      span {
        background-color: #ccc;
        min-width: 0;
      }
      .example {
        min-width: 10cm;
        display: inline-block;
      }
    </style>
  </head>
  <body>
    <h2>Min-width property example</h2>
    <h3>Min-width: 0:</h3>
    <span>Minimum width is set to 0.</span>
    <h3>min-width: 10cm:</h3>
    <span class="example">Minimum width is set to 10cm.</span>
  </body>
</html>

Il problema di min-width: 0 con Flexbox

Per impostazione predefinita, un elemento flex non può restringersi al di sotto delle dimensioni del suo contenuto — il suo min-width implicito è auto, non 0. Per questo motivo, parole lunghe, blocchi di codice o elementi <pre> all'interno di un contenitore flex possono andare in overflow e allungare l'intero layout invece di andare a capo o scorrere.

La soluzione è impostare esplicitamente min-width: 0 sull'elemento flex in modo che possa restringersi al di sotto delle dimensioni del suo contenuto:

.flex-item {
  min-width: 0; /* allow this item to shrink below its content width */
  overflow: hidden; /* or use overflow-x: auto for scrollable content */
}

Consulta overflow e flex per ulteriori informazioni su come controllare il comportamento del contenuto ridotto.

Valori

ValoreDescrizioneProva
lengthDefinisce una larghezza minima in px, pt, cm, em, ecc. Il valore predefinito è 0.Prova »
%Imposta la larghezza minima come percentuale della larghezza dell'elemento contenitore.Prova »
min-contentLa larghezza minima che il contenuto può avere senza andare in overflow (es. la parola più lunga).
max-contentLa larghezza che il contenuto avrebbe se non andasse mai a capo.
fit-contentUsa lo spazio disponibile, ma non più di max-content.
autoValore predefinito — si risolve a 0 per la maggior parte degli elementi, ma alla dimensione del contenuto per gli elementi flex.
initialFa sì che la proprietà utilizzi il suo valore predefinito (0).Prova »
inheritEredita la proprietà dall'elemento genitore.

Proprietà correlate

  • width — imposta la larghezza preferita che min-width limita.
  • max-width — imposta il limite superiore dell'intervallo di larghezza.
  • min-height — la controparte verticale di min-width.
  • box-sizing — controlla se padding e bordi vengono conteggiati nella larghezza.

Esercizio

Pratica
Qual è la funzionalità della proprietà 'min-width' in CSS?
Qual è la funzionalità della proprietà 'min-width' in CSS?
Was this page helpful?