Ce face border-collapse, border-spacing și table-layout
Implicit (border-collapse: separate), fiecare celulă are chenarul ei, iar între celule rămâne un mic spațiu, reglabil cu border-spacing. Rezultatul arată ca niște linii dublate. Cu collapse, chenarele celulelor vecine se unesc într-o singură linie, aspectul obișnuit al tabelelor de date.
table-layout: auto (implicit) citește tot conținutul tabelului ca să decidă lățimea coloanelor, deci un text lung lărgește o coloană. Cu table-layout: fixed, lățimile vin din primul rând (sau din <col>) și din lățimea tabelului, iar restul conținutului nu le mai schimbă. Tabelul se desenează mai repede și coloanele rămân stabile.
Valori uzuale
| Valoare | Descriere |
|---|---|
border-collapse: separate |
Implicit: fiecare celulă are chenarul ei, cu spațiu între celule. |
border-collapse: collapse |
Chenarele vecine se unesc într-o singură linie. |
border-spacing |
Distanța dintre celule (una sau două valori: orizontal, vertical); funcționează doar cu separate. |
table-layout: auto |
Implicit: lățimea coloanelor depinde de conținut. |
table-layout: fixed |
Lățimea coloanelor vine din primul rând și din lățimea tabelului. |
Exemple
Exemplul 1: Tabel de note cu linii simple
collapse face ca între celule să existe o singură linie de 1px, nu două.
.catalog {
border-collapse: collapse;
width: 100%;
}
.catalog th,
.catalog td {
border: 1px solid #cbd5e1;
padding: 8px 12px;
}
.catalog th {
background: #f1f5f9;
text-align: left;
}
Efect vizual în browser
Tabelul cu elevii (Ana – 9,50; Mihai – 8,75) are linii gri subțiri, unice, între toate celulele, iar antetul are fundal gri-deschis.
Exemplul 2: Coloane cu lățime fixă, indiferent de conținut
Cu table-layout: fixed, o descriere foarte lungă nu mai împinge coloana de preț.
.produse {
table-layout: fixed;
width: 100%;
}
.produse th:nth-child(1) { width: 60%; }
.produse th:nth-child(2) { width: 20%; }
.produse td {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Efect vizual în browser
Coloana „Produs” ocupă 60%, „Cantitate” 20%, „Preț (lei)” restul de 20%. Denumirile prea lungi sunt tăiate cu „…”, iar coloanele nu se mai lărgesc.
Greșeli frecvente
- Setarea lui
border-spacingîmpreună cuborder-collapse: collapse; spațierea este ignorată în modul collapse. table-layout: fixedfără lățime pe tabel (width: auto); fără o lățime, browserul revine practic la calculul automat.
Comenzi înrudite
border: Desenează o linie de contur în jurul conținutului și padding-ului unui element (grosime, stil, culoare).text-overflow (ellipsis) și -webkit-line-clamp: Taie textul prea lung și afișează „…” la final, pe un rând sau, cu -webkit-line-clamp, după un număr de rânduri.padding: Creează spațiu interior între conținutul elementului și bordura sa, preluând culoarea de fundal a elementului.