2012-05-30 2 views
4

У меня очень простой пример неупорядоченного списка с черной рамкой, а один из его дочерних элементов скрыт: http://jsfiddle.net/spryno724/Sm9Lx/1/. Обратите внимание, что скрытый дочерний элемент значительно шире видимого элемента, но контейнер только масштабируется до ширины видимого дочернего элемента.CSS Stretch Container to Width of Widest Hidden Child Element

Есть ли способ в CSS, чтобы автоматически масштабировать ширину этого контейнера до ширины его самого широкого дочернего элемента, даже если этот элемент скрыт?

Я знаю, что это возможно с помощью JavaScript, но я хотел бы избежать взлома скриптов и, если это возможно, перейти к прямому CSS.

Кроме того, я хотел бы избежать установки определенной ширины, потому что в моем фактическом приложении мой контейнер будет содержать визуальные объекты неизвестной ширины.

Спасибо за ваше время.

ответ

6

использование visibility: hidden;, а не display: none; на скрытой li

  • visibility: hidden; сохраняет элементы пространства

  • display: none; действует как если элемент оленьей кожи существовать в разметке

+3

С только видимость: скрытый, то уль расширяется, чтобы соответствовать высоту элемента, а также. Не уверен, что это то, чего хочет OP. В моем ответе ниже я добавил высоту: 0 –

+0

А! Даже не думал о видимости! Спасибо! –

0

Вместо display: none Вы можете использовать opacity: 0

3

Как насчет:

<li style="visibility: hidden; height: 0;">This is not the first list element, ok?</li> 
+0

Отлично! Только то, что мне нужно! –