Имам оформление, подобно на:
<div>
<table>
</table>
</div>
Бих искал div
да се разширява само до ширината на моята table
.
Искате блоков елемент, който има това, което CSS нарича "свиване според ширината", а спецификацията не предоставя благословен начин за получаване на такова нещо. В CSS2 свиването според ширината не е цел, а средство за справяне със ситуация, в която браузърът "трябва да" получи ширина от въздуха. Тези ситуации са:
когато не е зададена ширина. Чувал съм, че мислят да добавят това, което искате, в CSS3. Засега се задоволете с едно от горните.
Решението да не се излага функцията директно може да изглежда странно, но има основателна причина. Тя е скъпа. Съкращаването на елемента означава форматиране поне два пъти: не можете да започнете да форматирате елемент, докато не знаете ширината му, и не можете да изчислите ширината с/без да преминете през цялото съдържание. Освен това не е необходимо да се свива елементът толкова често, колкото си мислите. Защо ви е необходим допълнителен div около таблицата? Може би ви е нужен само надписът на таблицата.
Не знам в какъв контекст ще се появи това, но смятам, че CSS-стиловото свойство float
или left
, или right
ще има този ефект. От друга страна, то'ще има и други странични ефекти, като например да позволи на текста да плава около него.
Моля, поправете ме, ако все пак греша, не съм сигурен на 100% и в момента не мога да го тествам сам.
Решение, съвместимо с CSS2, е да използвате:
.my-div
{
min-width: 100px;
}
Можете също така да плавате с div, което ще го накара да бъде възможно най-малък, но ще трябва да използвате clearfix, ако нещо вътре в div е плаващо:
.my-div
{
float: left;
}