Вы хотите, чтобы ширина #stack
также сжимала его дочерних элементов, или вы просто беспокоитесь о его высоте? Я предполагаю последнее, поскольку вы явно указали display: block
.
Потому что в этом случае это можно сделать только с помощью CSS:
#stack {
overflow: hidden;
_zoom: 1;
}
#stack div {
float: left;
margin-right: -100%;
}
Я добавил _zoom: 1
для запуска hasLayout
в IE6. Вы можете изменить это на предпочитаемый вами метод (например, в отдельной таблице стилей IE6) или вообще не указывать его, если вам не нужна поддержка IE6.
В Opera вы можете сделать #stack
термоусадочную пленку для его дочерних элементов целиком (т.е. по ширине), когда вы перемещаете стек (или display: inline-block
) и добавляете width: 100%
в дочерние элементы div. Я не знаю, связано ли это с ошибкой в Opera, ошибкой в других браузерах или просто с различием из-за неопределенной спецификации.