2009-02-15 2 views
4

Мне было интересно, как сделать форму и Div иметь максимальную ширину дочерних элементов. Например, в этом примере как форма, так и внешнийDIV растягивают всю ширину страницы. Я хотел бы, чтобы форма и outerDiv имели ширину 200 пикселей.Как сделать форму и Div иметь максимальную ширину дочерних элементов

Это становится проблемой, когда у меня есть эта страница в iframe, потому что ширина страницы больше, чем iframe. Я получаю горизонтальную полосу прокрутки.

<body> 
<form name="myForm" method="post" action="#" > 
    <div id="outerDiv" > 
     <div style="width: 200px"> 
     Both the form and outer div stretch 100%. I am wondering how I 
     would get them to wrap tightly around the inner div. 
     </div> 
    </div> 
</form> 
</body> 

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

ответ

4

Я считаю, что «правильный» способ сделать их встроенные элементы:

style="display: inline;" 

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

Вы можете использовать пробелы в качестве контейнеров или просто добавить этот стиль в свои div.

Удачи вам!

+0

Просто обратите внимание, что в соответствии со стандартами XHTML диапазон, содержащий другие элементы, недействителен, поэтому метод CSS лучше, хотя я не уверен, почему бы просто не установить внешний div и форму как ширину 200px. –

+0

Согласно Ole J. Helgesen, встроенный блок может быть лучше, однако поддержка этого свойства плохо в некоторых старых браузерах. –

+0

Вы просто взорвали мой разум. Вы просто приняли меня на следующий уровень развития веб-интерфейса и решили около 12 различных проблем, которые у меня есть. – pixelpax

7

Чтобы сделать дисплейный блок как строковый элемент, вы можете использовать

display: inline-block; 
+1

Где ты был всю мою жизнь. –

1

Чтобы предотвратить скроллбар для #outerDiv можно установить максимальные ширины и переполнение свойство:

#outerDiv { 
    max-width: 300px; 
    overflow: hidden; 
} 

Таким образом, вы не гарантируете никаких полос прокрутки, и я предполагаю, что ширина iframe не превышает 300 пикселей. Также обязательно установите frameborder="0" на iframe и проверьте поля на корпусе прилагаемого html.

+0

Хороший ответ! Это очень помогло мне в решении подобной проблемы! – MikeN

Смежные вопросы