2011-02-18 38 views
12

tôi có 3 div conatined trong div bên ngoài. tôi sắp xếp chúng theo chiều ngang bằng cách thả chúng sang trái. và div3 dưới dạng float rightlàm cho div lấp đầy không gian còn lại

<div id="outer"> 

    <div id="div1">always shows</div> 
    <div id="div2">always shows</div> 
    <div id="div3">sometimes shows</div> 
</div> 

div1 và div3 có kích thước cố định. nếu div3 bị bỏ đi, tôi muốn div 2 lấp đầy không gian còn lại. tôi làm nó như thế nào?

+1

http://jsfiddle.net/ – acm

Trả lời

24

Còn thứ gì đó như thế này thì sao? https://jsfiddle.net/Siculus/9vs5nzy2/

CSS:

#container{ 
    width: 100%; 
    float:left; 
    overflow:hidden; /* instead of clearfix div */ 
} 
#right{ 
    float:right; 
    width:50px; 
    background:yellow; 
} 
#left{ 
    float:left; 
    width:50px; 
    background:red; 
} 
#remaining{ 
    overflow: hidden; 
    background:#DEDEDE; 
} 

Body:

<div id="container"> 
    <div id="right">div3</div> 

    <div id="left">div1</div> 

    <div id="remaining">div2, remaining</div> 
</div> 
+1

Giải pháp của bạn đã làm cho ngày của tôi! cảm ơn bạn!! –

+0

công việc tuyệt vời! –

+0

liên kết jsfiddle dường như đã chết – Wyck

0

Bạn không cần phải nổi #div2, nó sẽ tự động điền vào các không gian còn lại.

Nếu bạn muốn đường viền/đệm, bạn nên cung cấp #div2 phần tử con.

0

Đây là một kỹ thuật sử dụng display: table;https://jsfiddle.net/sxk509x2/

Hỗ trợ trình duyệt (ví dụ: 11 +): http://caniuse.com/#feat=css-table

HTML

<div class="outer"> 
    <div class="static pretty pretty-extended">$</div> 
    <input class="dynamic pretty" type="number" /> 
    <div class="static pretty">.00</div> 
</div> 

CSS

.outer{ 
    width:300px; 
    height:34px; 
    display:table; 
    position: relative; 
    box-sizing: border-box; 
} 
.static{ 
    display:table-cell; 
    vertical-align:middle; 
    box-sizing: border-box; 
} 
.dynamic{ 
    display:table-cell; 
    vertical-align:middle; 
    box-sizing: border-box; 
    width: 100%; 
    height:100%; 
} 
.pretty{ 
    border: 1px solid #ccc; 
    padding-left: 7px; 
    padding-right: 7px; 
    font-size:16px; 
} 
.pretty-extended{ 
    background: #eee; 
    text-align:center; 
} 

Các lớp có chứa "khá "không bắt buộc phải hoàn thành sh những gì bạn đang cố gắng làm. Tôi chỉ cần thêm chúng để xuất hiện.

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