How to set the maximum height based on a custom value?

Controlul Dimensiunilor cu max-height CSS

15/09/2024

Rating: 3.95 (4286 votes)

În lumea în continuă evoluție a designului web, controlul precis asupra elementelor vizuale este esențial pentru a crea experiențe de utilizare fluide și responsive. Una dintre cele mai puternice unelte din arsenalul unui dezvoltator front-end este proprietatea CSS max-height. Aceasta nu este doar o simplă regulă de stil, ci un mecanism crucial care permite elementelor să se adapteze dinamic la conținutul lor și la dimensiunile ecranului, fără a compromite integritatea vizuală a paginii. Indiferent dacă construiești un site complex sau o aplicație simplă, înțelegerea și aplicarea corectă a max-height te va ajuta să previi problemele comune de layout, cum ar fi conținutul care depășește limitele containerului sau elementele care devin disproporționat de mari pe ecrane largi.

What is max-height CSS?
Learn how to contribute. This page was last modified on Jul 14, 2025 by MDN contributors. The max-height CSS property sets the maximum height of an element. It prevents the used value of the height property from becoming larger than the value specified for max-height.

Această proprietate, stabilită de mult timp și suportată pe scară largă de majoritatea browserelor și dispozitivelor încă din iulie 2015, este o componentă fundamentală pentru a asigura adaptabilitatea și estetica designului tău web. Haideți să explorăm în detaliu ce este max-height, cum funcționează și cum o poți utiliza la potențialul său maxim pentru a construi interfețe robuste și atractive.

Cuprins

Ce este proprietatea CSS max-height?

Proprietatea CSS max-height, așa cum sugerează și numele, definește înălțimea maximă pe care o poate avea un element HTML. Este o gardă de siguranță esențială care împiedică un element să devină mai înalt decât o anumită valoare specificată. Gândește-te la ea ca la un plafon de sticlă: elementul poate crește până la acel plafon, dar nu îl poate depăși.

Modul în care funcționează este destul de intuitiv:

  • Dacă conținutul unui element este mai mic decât max-height specificat, proprietatea max-height nu are niciun efect vizibil. Elementul își va lua înălțimea naturală, determinată de conținutul său sau de alte proprietăți CSS (cum ar fi height).
  • Dacă însă conținutul este mai mare și ar necesita o înălțime care depășește valoarea max-height, elementul va fi constrâns la înălțimea maximă definită. În acest caz, conținutul suplimentar va "curge" în afara elementului. Modul în care acest "overflow" este gestionat este determinat de proprietatea overflow (de exemplu, overflow: hidden; pentru a ascunde conținutul suplimentar, overflow: scroll; pentru a adăuga o bară de derulare, sau overflow: auto; pentru a adăuga o bară de derulare doar dacă este necesar).

Un aspect crucial de reținut este că proprietatea max-heightsuprascrie proprietatea height. Dacă ai setat atât height: 200px; cât și max-height: 100px;, elementul va avea o înălțime maximă de 100px. Acest comportament este benefic pentru a crea elemente care sunt flexibile, dar nu depășesc anumite limite. Valoarea implicită pentru max-height este none, ceea ce înseamnă că elementul nu are o înălțime maximă predefinită și poate crește oricât de mult este necesar pentru a-și conține conținutul.

Suportul pentru browsere pentru max-height este excelent, fiind disponibil pe scară largă de la versiuni timpurii ale browserelor majore, inclusiv Internet Explorer 7.0, Firefox 1.0, Chrome 1.0, Safari 1.3 și Opera 7.0. Aceasta înseamnă că o poți folosi cu încredere în proiectele tale, fără a-ți face griji cu privire la compatibilitate.

Sintaxă și Valori pentru max-height

Sintaxa de bază pentru proprietatea max-height este simplă și directă:

selector { max-height: valoare; }

Unde valoare poate fi una dintre următoarele:

  • none (implicit): Nu există o înălțime maximă definită. Elementul poate crește oricât este necesar.
  • length: O valoare numerică urmată de o unitate de măsură, cum ar fi pixeli (px), em (em), rem (rem), procente (%), sau unități de vizualizare (viewport units).
    • px (pixeli): O unitate absolută, ideală pentru control precis. Exemplu: max-height: 200px;
    • em (element's font size): O unitate relativă la dimensiunea fontului elementului părinte. Oferă o anumită flexibilitate. Exemplu: max-height: 10em;
    • rem (root em): O unitate relativă la dimensiunea fontului elementului rădăcină (de obicei <html>). Utile pentru scalabilitate globală. Exemplu: max-height: 15rem;
    • % (procent): O înălțime maximă definită ca procent din înălțimea elementului părinte. Este crucial pentru designul fluid și responsiv. Exemplu: max-height: 50%;. Rețineți că elementul părinte trebuie să aibă o înălțime definită pentru ca procentele să funcționeze corect.
    • Unități de vizualizare (Viewport Units):
      • vh (viewport height): 1% din înălțimea ferestrei de vizualizare (viewport). De exemplu, max-height: 100vh; va face ca elementul să ocupe maxim întreaga înălțime a ecranului.
      • vw (viewport width): 1% din lățimea ferestrei de vizualizare. Deși mai puțin folosit pentru înălțime, poate fi util în scenarii specifice.
      • dvh, lvh, svh: Acestea sunt unități de vizualizare dinamice, mari și mici, care țin cont de elementele interfeței utilizatorului browserului (cum ar fi barele de adrese mobile) și oferă o precizie mai mare în anumite contexte responsive.
    • lh (line height): O unitate relativă la înălțimea liniei elementului. Poate fi utilă pentru a alinia conținutul la grila tipografică. Exemplu: max-height: 2lh;
  • initial: Setează proprietatea la valoarea sa implicită (adică none).
  • inherit: Moștenește valoarea max-height de la elementul părinte.

Înțelegerea Valorilor Intrinsice: max-content și fit-content

Pe lângă valorile numerice, max-height poate folosi și valori intrinseci, care se adaptează la conținutul elementului într-un mod inteligent. Acestea sunt deosebit de utile în sistemele de layout moderne, cum ar fi CSS Grid și Flexbox.

How do I set a Div's height to a default value?

Ce este max-content?

max-content este un cuvânt cheie care reprezintă lățimea sau înălțimea intrinsecă preferată a unui element. Practic, este dimensiunea pe care un element ar dori să o aibă dacă i s-ar permite să ocupe cât spațiu are nevoie, fără a-și "împacheta" conținutul (în cazul lățimii) sau fără a-l "revărsa" (în cazul înălțimii).

Calculul valorii max-content orizontală (pentru lățime):

Când se aplică width: max-content;, min-width: max-content; sau max-width: max-content;, valoarea max-content orizontală este lățimea minimă pe care o poate avea un element fără ca conținutul său să se suprapună orizontal. Imaginează-ți că elementul părinte are o lățime infinită (sau foarte mare), iar elementul curent este la înălțimea sa minimă (fără a-și revărsa conținutul pe verticală). În acest scenariu, max-content va fi lățimea exactă necesară pentru a afișa tot conținutul pe o singură linie, fără nicio întrerupere sau împachetare a textului. De exemplu, un bloc de text va ocupa lățimea maximă a celei mai lungi linii de text, fără a se împacheta.

Calculul valorii max-content verticală (pentru înălțime):

Similar, când se aplică height: max-content;, min-height: max-content; sau max-height: max-content;, valoarea max-content verticală este înălțimea minimă pe care o poate avea un element fără ca conținutul său să se suprapună vertical. Dacă elementul părinte are o înălțime infinită (sau foarte mare) și elementul curent este la lățimea sa minimă (fără a-și revărsa conținutul pe orizontală), max-content va fi înălțimea exactă necesară pentru a afișa tot conținutul pe verticală, fără să existe niciun "overflow" vizibil. Acesta este comportamentul natural al unui element bloc care se extinde pentru a conține tot conținutul său.

Ce este fit-content?

fit-content este o valoare mai complexă, care încearcă să găsească un echilibru între min-content, max-content și o dimensiune preferată (specificată de obicei prin width sau height). Practic, elementul va încerca să se adapteze la dimensiunea preferată, dar nu va fi niciodată mai mic decât min-content și niciodată mai mare decât max-content. Este extrem de utilă pentru a crea componente flexibile care se ajustează inteligent la spațiul disponibil.

Deși nu este menționat în detaliu în informațiile furnizate, este important de menționat și min-content. min-content reprezintă dimensiunea minimă pe care o poate avea un element fără a provoca un overflow. Pentru text, aceasta ar fi lățimea celui mai lung cuvânt, iar pentru elementele cu mai multe elemente interne, ar fi lățimea necesară pentru a afișa toate elementele împachetate cât mai mult posibil.

How to fit an image in CSS?
This is a common requirement when working with images, and it can be achieved using the object-fit and object-position properties in CSS. Generally, you can use object-fit: contain to fit the entire image within the container while preserving its aspect ratio.

Cum Setezi Înălțimea Maximă cu Valori Personalizate și Utilități

Pe lângă unitățile standard, există diverse modalități de a seta max-height, inclusiv prin utilizarea de utilitare sau sintaxe personalizate, mai ales în framework-uri CSS moderne (cum ar fi Tailwind CSS, deși nu vom numi direct framework-ul, vom descrie funcționalitatea).

Valori numerice bazate pe scală de spațiere:

Multe sisteme CSS oferă clase utilitare predefinite pentru a seta max-height pe baza unei scale de spațiere predefinite. Acestea sunt adesea calculate folosind o variabilă CSS (de exemplu, --spacing). De exemplu, o clasă precum max-h-24 ar putea seta max-height: calc(var(--spacing) * 24);. Aceste utilitare permit o consistență vizuală și o dezvoltare rapidă. Exemple comune includ valori precum max-h-80, max-h-64, max-h-48, etc., care corespund unor înălțimi fixe, dar scalabile.

Valori procentuale și relative:

Pentru a oferi elementelor o înălțime maximă bazată pe un procent din înălțimea părintelui, poți folosi utilitare precum max-h-1/2 (pentru 50%), max-h-3/4 (pentru 75%) sau max-h-full (pentru 100%). Acestea se traduc în max-height: calc(fracție * 100%); sau max-height: 100%;. Ele sunt indispensabile pentru a crea layout-uri care se adaptează proporțional la spațiul disponibil.

Valori specifice și intrinseci:

  • max-h-none: Echivalent cu max-height: none;.
  • max-h-px: Setează max-height: 1px;. Utile pentru linii subțiri sau separatoare.
  • max-h-screen: Setează max-height: 100vh;. Ideal pentru a face un element să nu depășească niciodată înălțimea vizibilă a ecranului.
  • max-h-dvh, max-h-lvh, max-h-svh: Acestea sunt variante ale vh, oferind mai mult control asupra modului în care înălțimea elementului se raportează la viewport-ul dinamic al browserului, luând în considerare barele de adrese și alte elemente UI.
  • max-h-min: Setează max-height: min-content;.
  • max-h-max: Setează max-height: max-content;.
  • max-h-fit: Setează max-height: fit-content;.

Valori personalizate (arbitrare):

Există și flexibilitatea de a seta o înălțime maximă bazată pe o valoare complet personalizată, care nu este inclusă în scala predefinită. Sintaxa poate arăta ca max-h-[220px], permițându-ți să specifici direct orice valoare CSS validă. De asemenea, poți folosi variabile CSS pentru a gestiona înălțimile maxime: max-h-(--variabila-mea-inaltime-maxima), care se traduce în max-height: var(--variabila-mea-inaltime-maxima);. Această abordare este excelentă pentru gestionarea temelor și a stilurilor dinamice.

max-height în Designul Responsiv și JavaScript

Design Responsiv:

max-height este o piatră de temelie a designului responsiv. Prin combinarea ei cu interogări media (media queries) sau cu "breakpoint variants" (cum ar fi md:max-h-screen), poți asigura că elementele tale se comportă diferit pe diverse dimensiuni de ecran. De exemplu, un card de conținut poate avea o înălțime automată pe desktop, dar pe un ecran mobil, poți dori să limitezi înălțimea maximă pentru a preveni derularea excesivă și a menține elementele vizibile. Acest lucru este vital pentru a oferi o experiență de utilizare optimă pe o gamă largă de dispozitive, de la telefoane mobile la ecrane ultra-wide. Fără max-height, elementele ar putea deveni disproporționat de mari, forțând utilizatorii să deruleze mult prea mult sau ducând la suprapuneri inestetice de conținut.

What should I do if a div does not touch height?
Here is what you should do in the CSS style, on the main div And do not touch height Worked great. I needed to add height: 100% to html, body and the container div to make it fill the height when there was not enough content though. Is the display: block; needed? Divs are already block-level elements.

Utilizarea în JavaScript:

Pe lângă CSS, proprietatea max-height poate fi manipulată și din JavaScript prin intermediul DOM (Document Object Model). Sintaxa este simplă: object.style.maxHeight = "100px";. Acest lucru este util pentru a implementa funcționalități dinamice, cum ar fi:

  • Acordeoane sau secțiuni expandabile: Când un utilizator dă clic pe un antet, poți schimba max-height de la 0 la max-content (sau o valoare fixă mare) pentru a dezvălui sau ascunde conținutul cu o tranziție fluidă.
  • Galerii de imagini sau containere cu conținut variabil: Ajustarea dinamică a max-height în funcție de numărul de elemente sau de dimensiunea conținutului pentru a menține un aspect uniform.
  • Avertismente sau notificări: Afișarea temporară a unui mesaj cu o înălțime limitată, care se ajustează dacă textul este prea lung.

Capacitatea de a anima proprietatea max-height adaugă un strat suplimentar de rafinament, permițând tranziții elegante între stări, îmbunătățind astfel percepția utilizatorului asupra performanței și fluidității interfeței.

Tabel Comparativ: height vs. min-height vs. max-height

Pentru a înțelege mai bine rolul fiecărei proprietăți de înălțime, iată o comparație:

ProprietateDefinițieComportament cu ConținutulPrioritate (când sunt setate împreună)Când se Utilizează
heightDefinește înălțimea fixă sau preferată a unui element.Elementul va avea exact această înălțime. Dacă conținutul depășește, apare overflow. Dacă este mai puțin, spațiu gol.Poate fi suprascrisă de min-height și max-height.Când ai nevoie de o înălțime specifică și fixă, indiferent de conținut (ex: imagini cu proporții fixe, elemente de interfață).
min-heightDefinește înălțimea minimă pe care o poate avea un element.Elementul nu va fi niciodată mai mic decât această valoare. Dacă conținutul este mai puțin, elementul rămâne la min-height. Dacă este mai mult, crește.Suprascrie height (dacă height este mai mică decât min-height).Când vrei să asiguri că un element are întotdeauna o anumită dimensiune minimă, chiar dacă nu are suficient conținut (ex: zone clickabile mari, secțiuni cu aspect uniform).
max-heightDefinește înălțimea maximă pe care o poate avea un element.Elementul nu va fi niciodată mai mare decât această valoare. Dacă conținutul depășește, apare overflow. Dacă este mai puțin, elementul își ia înălțimea naturală (sau height/min-height).Suprascrie height (dacă height este mai mare decât max-height).Când vrei să previi creșterea excesivă a unui element, mai ales în design responsiv sau cu conținut dinamic (ex: blocuri de text, meniuri drop-down, galerii).

Întrebări Frecvente (FAQ) despre max-height

1. Când ar trebui să folosesc max-height?

max-height este ideală în următoarele scenarii:

  • Design Responsiv: Pentru a preveni ca elementele să devină prea înalte pe ecrane mari sau să iasă din limite pe ecrane mici.
  • Conținut Dinamic: Când conținutul unui element (ex: un comentariu, o descriere de produs) poate varia ca lungime și vrei să-i limitezi creșterea pentru a menține un layout consistent.
  • Meniuri Dropdown sau Acordeoane: Pentru a controla înălțimea maximă a panourilor expandabile, adesea combinată cu overflow: hidden; și animații JavaScript.
  • Galerii sau Carusele: Pentru a asigura o înălțime uniformă a containerelor de imagini sau a slide-urilor, indiferent de dimensiunea imaginii.
  • Prevenirea Overflow-ului: Când vrei să te asiguri că un element nu va depăși o anumită zonă, forțând conținutul să se deruleze sau să fie ascuns.

2. Ce se întâmplă dacă conținutul meu depășește max-height?

Dacă conținutul este mai mare decât max-height, acesta va "curge" în afara elementului. Modul în care acest overflow este vizibil depinde de proprietatea CSS overflow a elementului. Cele mai comune valori sunt:

  • overflow: visible; (implicit): Conținutul se va revărsa în afara casetei elementului și va fi vizibil.
  • overflow: hidden;: Conținutul care depășește max-height va fi tăiat și ascuns.
  • overflow: scroll;: Se vor adăuga bare de derulare (verticală și orizontală) pentru a permite vizualizarea conținutului suplimentar.
  • overflow: auto;: Barele de derulare vor fi adăugate doar dacă este necesar. Aceasta este adesea cea mai bună opțiune.

3. Proprietatea max-height suprascrie proprietatea height?

Da, max-height are o prioritate mai mare decât height. Dacă setezi height: 300px; și max-height: 200px;, înălțimea efectivă a elementului va fi de 200px. Similar, min-height are prioritate dacă valoarea sa este mai mare decât height. Ordinea de prioritate este: min-height > max-height > height.

4. Poate fi max-height animată?

Da, proprietatea max-height este animabilă. Acest lucru este extrem de util pentru a crea efecte de tranziție fluide, cum ar fi extinderea sau restrângerea meniurilor acordeon. De exemplu, poți anima max-height de la 0 la o valoare mare (sau max-content, deși animația la max-content poate fi problematică și adesea se folosește o valoare mare fixă) pentru a crea un efect de "glisare" la deschiderea unui panou.

Concluzie

Proprietatea CSS max-height este mult mai mult decât o simplă regulă de stil; este un instrument esențial pentru a crea interfețe web responsive și robuste. Prin limitarea creșterii elementelor și gestionarea inteligentă a conținutului, max-height te ajută să menții controlul asupra layout-ului, asigurând o experiență vizuală plăcută și funcțională pe orice dispozitiv. De la prevenirea overflow-ului la crearea de componente dinamice și adaptabile, înțelegerea și aplicarea corectă a acestei proprietăți te va propulsa spre un nivel superior în dezvoltarea web. Nu uita să explorezi și valorile intrinseci precum max-content și fit-content, care aduc un plus de inteligență și flexibilitate designului tău. Prin practică și experimentare, vei descoperi nenumăratele moduri în care max-height poate simplifica și îmbunătăți fluxul tău de lucru.

Dacă vrei să descoperi și alte articole similare cu Controlul Dimensiunilor cu max-height CSS, poți vizita categoria Fitness.

Go up