<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td{max-width:67%;}
</style>
Yukarıdakiler çalışmıyor. Yüzdeleri kullanarak bir tablo hücresinin maksimum genişliğini nasıl ayarlayabilirim?
<table>
<tr>
<td>Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
<style>
td{max-width:67%;}
</style>
Yukarıdakiler çalışmıyor. Yüzdeleri kullanarak bir tablo hücresinin maksimum genişliğini nasıl ayarlayabilirim?
Yanıtlar:
CSS 2.1 spesifikasyonundaki maksimum genişlik tanımına göre , "'min-width' ve 'max-width'in tablolar, satır içi tablolar, tablo hücreleri, tablo sütunları ve sütun grupları üzerindeki etkisi tanımsızdır." Dolayısıyla, bir td öğesinde maksimum genişliği doğrudan ayarlayamazsınız.
Yalnızca ikinci sütunun en fazla% 67 kaplamasını istiyorsanız, genişliği (tablo hücreleri için gerçekte minimum genişliktir)% 33 olarak ayarlayabilirsiniz, örneğin örnek durumda
td:first-child { width: 33% ;}
Tarayıcıların sütunlara eşit genişlik vermesini sağladığından, her iki sütun için bunu ayarlamak o kadar iyi çalışmayacaktır.
Bildiğim eski soru, ancak bu artık table-layout: fixedtablo etiketindeki css özelliğini kullanarak mümkün . Bu sorunun altındaki cevap , bir tablo hücresinde CSS yüzde genişliği ve metin taşması
Bu, kullanılarak kolayca yapılabilir table-layout: fixed, ancak biraz yanıltıcıdır çünkü çoğu kişi bu CSS özelliğini bilmiyor.
table {
width: 100%;
table-layout: fixed;
}
Buradaki güncellenmiş kemanla iş başında görün: http://jsfiddle.net/Fm5bM/4/
max-widthjsfiddle'ı kaldırırsanız, genişlik aynı kalacaktır, bu yüzden onu max-widthayarlayan şey değildir. max-width: 10%Birincisi a ile değiştirirseniz daha net olabilir td... değişmediğini göreceksiniz. jsfiddle.net/w3f8ey22/1
Bunun tam anlamıyla bir yıl sonra olduğunu biliyorum, ama paylaşacağımı düşündüm. Ben de aynı şeyi yapmaya çalışıyordum ve benim için işe yarayan bu çözüme rastladım. Tüm tablo için bir maksimum genişlik belirledik, ardından istenen etki için hücre boyutlarıyla çalıştık.
Tabloyu kendi div bölümüne yerleştirin, ardından tüm tablo için div'in genişliğini, minimum genişliğini ve / veya maksimum genişliğini istediğiniz gibi ayarlayın. Ardından, istediğimiz maksimum genişliği elde etmek için diğer hücreler için genişlik ve minimum genişlikleri ve div için maksimum genişliği ayarlayabilir ve etrafta ve geriye doğru etkili bir şekilde çalışarak istediğimiz maksimum genişliği elde edebilirsiniz.
<div id="tablediv">
<table width="100%">
<tr>
<td class="tdleft">Test</td>
<td>A long string blah blah blah</td>
</tr>
</table>
</div>
Sonra stillerinize şunu koyun:
#tablediv {
width:90%;
min-width:800px
max-width:1500px;
}
.tdleft {
width:20%;
min-width:200px;
}
Kuşkusuz, bu size tek başına bir hücrenin "maksimum" genişliğini vermez, ancak böyle bir seçeneğin yerine çalışabilecek bazı kontrollere izin verir. İhtiyaçlarınız için işe yarayıp yaramayacağından emin değilim. Sayfadaki gezinme tarafının bir noktaya kadar ölçeklenmesini istediğimiz durumumuz için, ancak bugünlerde tüm geniş ekranlar için işe yaradığını biliyorum.