Cách đặt kích thước tự động của div cha bằng chiều rộng của div con


81

Tôi đang cố gắng làm cho div mẹ chỉ rộng bằng div con. Độ rộng tự động làm cho div chính vừa với toàn bộ màn hình. Các div con sẽ có độ rộng khác nhau tùy thuộc vào nội dung của chúng nên tôi cần div mẹ điều chỉnh cho phù hợp.

<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>

Câu trả lời:


91

Các <div>yếu tố nội thất của bạn có thể phải là cả hai float:left. Tự động chia kích thước thành 100% kích thước chiều rộng vùng chứa của chúng. Hãy thử sử dụng display:inline-blockthay vì width:autotrên div vùng chứa. Hoặc có thể float:leftlà thùng chứa và cũng có thể áp dụng overflow:auto. Phụ thuộc vào những gì bạn đang theo đuổi chính xác.


Cảm ơn Madbreaks. Làm cho cả hai bên trái nổi là điều tôi đã không thử.
bradley 4

tự động tràn đã làm điều đó cho tôi
gỉ

"display: inline-block" là một cách hay, nhưng nếu bạn muốn sử dụng giá trị phần trăm cho chiều rộng của phần tử con, nó sẽ không hoạt động như bạn mong đợi. Có ý tưởng nào để làm cho nó hoạt động với các giá trị phần trăm không?
Mohsen Haeri

@MohsenHaeri bạn không thể. Phần trăm chiều rộng cho con được tính từ chiều rộng của trang gốc. Bạn thử nghĩ xem, nếu tôi có hai con với width: 50%bố mẹ rộng bao nhiêu?
Madbreaks

@Madbreaks Tôi biết điều đó. Đó là lý do tại sao tôi đang tìm kiếm một bản hack để làm điều đó. Các cách js có sẵn, nhưng tôi không thể tìm ra một cách css thuần túy. Dù sao, cảm ơn sự chú ý của bạn.
Mohsen Haeri

28

Div cha (tôi giả sử là div ngoài cùng) đang display: blockvà sẽ lấp đầy tất cả các khu vực có sẵn của vùng chứa của nó (trong trường hợp này là phần thân) mà nó có thể. Sử dụng một kiểu hiển thị khác - inline-blockcó thể là những gì bạn đang làm:

http://jsfiddle.net/a78xy/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.