2011-10-13 37 views
12

Tôi đang cố gắng để có một trang web có cấu trúc cơ bản:divs Đặt dưới float: left divs

<1 div> 
<3 divs next to each other> 
<1 div> 

3 divs là float: left để thực hiện được trên cùng cấp. Tuy nhiên, họ thứ 5 div (ở phía dưới) loại di chuyển lên đến đỉnh của 3 divs trong IE, và hiển thị như thế trong Chrome, mặc dù nội dung là dưới 3 divs.
Tôi nghĩ rằng tôi đã thực hiện một số mã lười biếng ở đây, nhưng không thực sự biết bất kỳ tốt hơn.
tôi hiện có:

<div id="results"> 
<!-- Ajax Content Here --> 
</div> 
<div id="leftpanel"> 
</div> 
<div id="photo"> 
</div> 
<div id="top3"> 
</div> 
<div id="voting"> 
</div> 

Kết quả là một trong những hàng đầu, leftpanel, hình ảnh và TOP3 là giữa 3, trong khi bỏ phiếu là dưới 3.
Basic CSS là:

#leftpanel { 
float:left; 
width:20%; 
height: 600px; 
} 

#top3 { 
float: left; 
width:20% 
} 

#photo { 
width: 60%; 
float:left; 
text-align: center; 
} 

#voting { 
width: 500px; 
height: 250px; 
text-align: center; 
margin-left: auto; 
margin-right: auto; 
} 

#results{ 
width: 300px; 
height: 20px; 
margin-left: auto; 
margin-right:auto; 
margin-bottom: 5px; 
text-align: center; 
} 

Tôi chắc chắn đó là điều gì đó ngớ ngẩn tôi đang làm, vì vậy bất kỳ đầu vào nào được đánh giá cao, tôi có thể sử dụng để tìm hiểu cách thực hiện điều này đúng cách :) Tôi đã có một div chứa 3 div trung gian, nhưng điều này không làm việc kể từ khi những người bên trong kích thước thay đổi. Có lẽ tôi cần phải làm điều này, nhưng theo một cách khác?

Trả lời

28

Thay vì làm việc với phao, bạn có thể xem xét việc chỉ thiết lập các thuộc tính hiển thị của divs giữa để "inline-block". Hãy nhớ rằng mặc định, các phần tử div có một khối hiển thị, có nghĩa là chúng chiếm toàn bộ chiều rộng của phần tử gốc của nó, ngay cả khi chiều rộng của nó nhỏ hơn chiều rộng của cha mẹ. khối nội tuyến trên mặt khác phù hợp với nhau như mảnh ghép và dòng chảy theo chiều ngang thay vì theo chiều dọc. Tôi nghĩ rằng điều này sẽ làm cho mã của bạn sạch hơn nhiều so với đối phó với phao nổi. Đây là bản trình diễn:

http://jsfiddle.net/scMFC/

+2

Đó là những câu trả lời, dịch các khái niệm thành tiếng Anh đơn giản, làm tăng sự hiểu biết của tôi như một người mới bắt đầu. +1. –

41

thêm clear: both vào div dưới cùng, do đó, nó sẽ không bị ảnh hưởng bởi các div khác nổi.

+3

Điều này phải được đánh dấu là câu trả lời đúng! – user2146414

8

Bạn cần xóa các phao. Nếu #voting là div thứ năm của bạn, hãy thêm số này vào css của bạn.

#voting{clear:both}

nên làm các trick

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