İçeren tablonun tüm genişliğini doldurmak için eşit boyutlu tablo hücreleri


96

Bir hücre satırının içinde bulunduğu tablonun tüm genişliğini uzatması için HTML / CSS (göreceli boyutlandırma ile) kullanmanın bir yolu var mı?

Hücreler eşit genişlikte olmalıdır ve dış tablo boyutu da dinamiktir <table width="100%">.

Şu anda sabit bir boyut belirtmezsem; hücreler içeriklerine uyacak şekilde otomatik olarak boyutlandırılır.

Yanıtlar:


144

Hücreler için belirli bir genişlik belirlemenize bile gerek yok table-layout: fixed, hücreleri eşit olarak yaymak için yeterli.

ul {
    width: 100%;
    display: table;
    table-layout: fixed;
    border-collapse: collapse;
}
li {
    display: table-cell;
    text-align: center;
    border: 1px solid hotpink;
    vertical-align: middle;
    word-wrap: break-word;
}
<ul>
  <li>foo<br>foo</li>
  <li>barbarbarbarbar</li>
  <li>baz</li>
</ul>

Söz konusu Not table-layouttezgaha tarz elemanının bir genişlik seti (bizim örneğimizde% 100) sahip olması gerekir.


11
bu çözüm daha iyi ve dinamik olarak oluşturulmuş sütunlarla bile çalışmalı
Imran Omar Bukhsh

Bir dizi td maksimum genişliğini aşarsa, başınız belada
Sterling Archer

5
Eklemek word-wrap:break-wordbu sorunu
Sterling Archer

113

Yalnızca yüzde genişliklerini ve sabit tablo düzenini kullanın :

<table>
<tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>
</table>

ile

table { table-layout: fixed; }
td { width: 33%; }

Sabit tablo düzeni önemlidir, çünkü aksi takdirde, içerikler uymuyorsa tarayıcı genişlikleri uygun gördüğü şekilde ayarlayacaktır, yani genişlikler aksi takdirde bir öneridir, sabit tablo düzeni olmayan bir kural değildir.

Açıkçası, CSS'yi koşullarınıza uyacak şekilde ayarlayın; bu, genellikle stili yalnızca belirli bir sınıfa veya muhtemelen belirli bir kimliğe sahip bir tabloya uygulamak anlamına gelir.


ve td seçicinin ilgili diğer td'leri seçmediğinden emin olun: D
Gordon Gustafson

3
tddinamik sütun sayısına sahip olabileceğiniz için genişliğini ayarlamanıza gerek yoktur ... ve onsuz çalışır.
Даниил Пронин

4

table-layout: fixedFor tableve width: calc(100%/3);for için bir özellik olarak kullanma td( 3 td'ler olduğu varsayılarak ). Bu iki özellik ayarlandığında, tablo hücrelerinin boyutu eşit olacaktır .

Bakın demo .


3
İkisine de ihtiyacınız yok, her iki çözüm de tek başına yeterli olacaktır.
Chris Kraszewski
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.