2011-02-09 37 views
6

Tôi có hai divs, một trong những quyền là 80px rộng khác nên lấp đầy không gian còn lại. Cho đến nay tôi đã thử:Làm thế nào để bạn đặt hai divs bên cạnh nhau để họ điền vào không gian có sẵn

<!DOCTYPE html> 

<html> 
<head> 
    <title>#{get 'title' /}</title> 
    <style type="text/css"> 
     body { 
      margin: 0; 
      padding: 0; 
     } 

     #left { 
      position: relative; 
      margin-right: 80px; 
      background-color: red; 
     } 

     #right { 
      float: right; 
      position: relative; 
      text-align: left; 
      width: 80px; 
      background-color: yellow; 
     } 
    </style> 
</head> 
<body> 
<div id="left"> 
    Left 
</div> 
<div id="right"> 
    Right 
</div> 
</body> 
</html> 

Tuy nhiên, hộp bên phải luôn được đặt bên dưới hộp bên trái và không được đặt bên dưới hộp bên trái. Tôi đoán đó là vì lợi nhuận. Tôi cũng đã thử một lề trái: -80px ở bên phải nhưng điều này dường như không thay đổi bất cứ điều gì. Vì vậy, làm thế nào để tôi phải thay đổi CSS để div bên phải là trong cùng một dòng như div trái?

Trả lời

13

Có quyền div trước bên trái.

<div id="right"> 
    Right 
</div> 
<div id="left"> 
    Left 
</div> 

Working Example

+0

này hoạt động, và có vẻ là dễ nhất trong những giải pháp đề nghị. Cảm ơn bạn! Những gì tôi không nhận được là, tại sao điều này là làm việc. Bạn có thể giải thích tại sao? –

+0

Vì các phần tử được vẽ theo thứ tự, thay vì di chuyển xuống qua phần tử bên trái để vẽ bên phải, bên phải được vẽ trước và bên trái được vẽ xung quanh phần tử bên phải. –

+0

Tôi hiểu. Cảm ơn bạn :) –

2

Đó là bởi vì div là một yếu tố ngăn chặn, có nghĩa là nó sẽ luôn luôn phá vỡ dòng chảy. Những gì bạn có thể làm là thay đổi cả số display của div thành inlinefloat thành left của div.

+0

sử dụng 'display: inline' nội dung sẽ xác định chiều rộng của phần tử, với kết quả phần tử' # left' không nằm ở bên phải mà không sử dụng 'width'. – Sotiris

1

Bạn có thể thay đổi position:relative; của #right thành position:absolute;top:0;right:0;. Điều này sẽ định vị phần tử ở góc trên cùng bên phải của phần tử gốc.

Ví dụ: http://jsfiddle.net/WaQGW/

3

Ngoài ra, nếu bạn đang tìm kiếm div LEFT duy trì ở chiều rộng và tĩnh div QUYỀN để mở rộng và hợp đồng với các kích thước của trang, bạn muốn sử dụng đoạn mã sau :

.left { 
    float: left; 
    position: relative; 
    width: 80px; 
    background-color: red; 
} 

.right { 
    position: relative; 
    text-align: left; 
    margin-left: 80px; 
    background-color: yellow; 
} 

Và HTML sẽ ...

<div class="left">Left</div> 
<div class="right">Right</div> 
1

Ngày nay nó có thể được thực hiện với flex.

Đặt vùng chứa (body trong trường hợp này) display thuộc tính flex, sau đó đặt chiều rộng của trái div thành 100%.

body { 
 
    margin: 0; 
 
    padding: 0; 
 
    display: flex; 
 
} 
 

 
#left { 
 
    background-color: red; 
 
    width: 100%; 
 
} 
 

 
#right { 
 
    width: 80px; 
 
    background-color: yellow; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title>#{get 'title' /}</title> 
 
</head> 
 
<body> 
 
<div id="left"> 
 
    Left 
 
</div> 
 
<div id="right"> 
 
    Right 
 
</div> 
 
</body> 
 
</html>

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