2012-01-19 39 views
54

Thông thường, bạn đặt các phần tử để hiển thị: nội tuyến nếu bạn muốn chúng hiển thị trong cùng một dòng. Tuy nhiên, thiết lập một phần tử thành inline nghĩa là thuộc tính width sẽ là vô nghĩa.Làm cách nào để hiển thị nhiều div trong một dòng nhưng vẫn giữ nguyên chiều rộng?

Làm thế nào để bạn thực hiện các div nằm trong cùng một dòng mà không làm cho chúng nằm trong nội tuyến?

Trả lời

101

Bạn có thể sử dụng display:inline-block.

Thuộc tính này cho phép phần tử DOM có tất cả các thuộc tính của phần tử khối, nhưng vẫn giữ nguyên nội tuyến. Có một số nhược điểm, nhưng hầu hết thời gian là đủ tốt. Why it's good and why it may not work for you.

EDIT: Các chỉ hiện đại trình duyệt có một số vấn đề với nó là IE7. Xem Quirksmode.org

+0

Bạn cũng có thể nổi chúng, nhưng đi kèm với bộ cảnh báo riêng. – prodigitalson

+0

có thể xây dựng trên các quirks trong các trình duyệt khác không? Tôi quan tâm. question +1 – cctan

+1

@cctan Bạn có thể đọc thêm [ở đây] (http://flipc.blogspot.com/2009/02/damn-ie7-and-inline-block.html). Về cơ bản, vấn đề là IE7 và IE6 chỉ áp dụng 'inline-block' cho các phần tử được hiển thị nội tuyến. Nó có thể được cố định mặc dù như được giải thích trên trang web đó. – lomegor

3

Bạn có thể thả nổi các cột div bằng float: left; và cung cấp cho họ chiều rộng.

Và để đảm bảo không có nội dung nào khác của bạn bị rối tung lên, bạn có thể quấn các div được thả nổi trong div cha và cung cấp cho nó một số kiểu dáng nổi rõ ràng.

Hy vọng điều này sẽ hữu ích.

14

tôi đã sử dụng tài sản

display: table; 

display: table-cell; 

để đạt được same.Link fiddle dưới đây cho thấy 3 bảng bọc trong divs và những divs được gói hơn nữa trong một div cha mẹ

<div id='content'> 
    <div id='div-1'><!-- COntains table --></div> 
    <div id='div-2'><!-- contains two more divs that require to be arranged one below other --></div> 
</div> 

Đây là jsfiddle: http://jsfiddle.net/vikikamath/QU6WP/1/ Tôi nghĩ thi s có thể hữu ích cho ai đó đang tìm cách đặt div trong cùng một dòng mà không sử dụng display-inline

+0

+1 Đây chính là câu trả lời tôi đang tìm kiếm. Tôi đặt hai div mà tôi muốn được hiển thị cạnh nhau để 'display: table-cell' và nó hoạt động hoàn hảo. Vì vậy, tốt hơn nhiều so với phao bởi vì nó không gây rối với bất kỳ bao bì container và bạn không phải 'rõ ràng:;' bất cứ điều gì khác. Cảm ơn!! –

+0

Tôi thích sử dụng phương pháp này hơn phương pháp khác !! Cảm ơn. – Dev

+0

Nếu bạn gặp sự cố, khắc phục sự cố với màn hình: bảng, sau đó bạn có 2 vấn đề: / – Downgoat

Các vấn đề liên quan