Як зробити автоматичний розмір батьківського div для ширини його дочірніх div


81

Я намагаюся зробити батьківський div настільки широким, як дочірній div. Автоматична ширина робить батьківський div відповідним цілому екрану. Діти div будуть мати різну ширину залежно від їх вмісту, тому мені потрібен батьківський div для відповідного налаштування.

<div style='width:auto;'>
  <div style="width: 135px; float: left;">
    <h4 style="padding-right: 5px; padding-left: 15px;">Column1</h4>
    <dl style="padding-right: 5px; padding-left: 15px; margin-top: -8px; overflow-x: hidden;">
      <dd style="white-space: nowrap;">1</dd>
      <dd style="white-space: nowrap;">2</dd>
    </dl>

    <h4 style="padding-right: 5px; padding-left: 15px;">Column1</h4>
    <dl style="padding-right: 5px; padding-left: 15px; margin-top: -8px; overflow-x: hidden;">
      <dd style="white-space: nowrap;">1</dd>
      <dd style="white-space: nowrap;">2</dd>
    </dl>
  </div>

  <div style="width: 135px; float: right;">
    <h4 style="padding-right: 5px; padding-left: 10px;">Column2</h4>
    <dl style="padding-right: 5px; padding-left: 15px; margin-top: -8px; overflow-x: hidden;">
      <dd style="white-space: nowrap;">1</dd>
      <dd style="white-space: nowrap;">2</dd>
      <dd style="white-space: nowrap;">3</dd>
    </dl>
  </div>
</div>

Відповіді:


92

Ваші <div>елементи інтер’єру, ймовірно, повинні бути обома float:left. Розділяє розмір на 100% від розміру ширини контейнера автоматично. Спробуйте використовувати display:inline-blockзамість width:autodiv контейнера. Або можливо float:leftконтейнер, а також застосовувати overflow:auto. Залежить від того, що саме ти хочеш.


Дякую Madbreaks. Зробити обидва ліві поплавці - це те, чого я не пробував.
bradley4

overflow auto зробив це для мене
іржавийпапір

"display: inline-block" - це приємний спосіб, але якщо ви хочете використовувати відсоткове значення для ширини дочірнього елемента, це не буде працювати, як ви очікуєте. Будь-яка ідея змусити його працювати з відсотковими значеннями теж?
Mohsen Haeri

@MohsenHaeri ти не можеш. Відсоток ширини для дитини обчислюється на основі ширини батьків. Подумайте, якщо у мене двоє дітей, width: 50%наскільки широким є батько?
Madbreaks

@Madbreaks Я це знаю. Ось чому я шукаю хак для цього. Js-способи доступні, але я не зміг зрозуміти чистого css-способу. У будь-якому разі, дякую за увагу.
Mohsen Haeri

28

Батьківський div (я припускаю, що найвіддаленіший div) є display: blockі заповнить всю доступну область його контейнера (в даному випадку тіло), яку він може. Використовуйте інший тип дисплея - inline-blockце, мабуть, те, для чого ви йдете:

http://jsfiddle.net/a78xy/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.