2013-05-23 34 views
5
<div id="sidebar">sidebar</div> 
<div id="content">content</div> 

Thanh bên có chiều rộng cố định là 100px. Làm cách nào để tăng chiều rộng của nội dung lên 100% chiều rộng của trình duyệt?Làm cách nào để chia tỷ lệ div thành 100% chiều rộng của trình duyệt?

http://jsfiddle.net/chickendance/qQQTU/1/

+5

Bạn có thể sử dụng hàm ['calc()'] (http://www.w3.org/TR/css3-values/#calc-notation), ví dụ: 'width: calc (100% - 200px)' vì độ rộng của hai phần tử đầu tiên được cố định. http://jsfiddle.net/qQQTU/3/ .. mặc dù [không được hỗ trợ] (http://caniuse.com/calc) trong IE 8 trở xuống. – Adrift

+1

+1 để giới thiệu tôi với hướng dẫn này – Niche

+0

Đồng ý! Tôi đã luôn luôn muốn CSS để làm điều đó. Tôi không biết họ đang làm chuyện đó. Khéo léo! –

Trả lời

13

Bạn có thể làm điều này với CSS đơn giản:

#sidebar { 
    float: left; 
    width: 100px; 
} 

#content { 
    margin-left: 100px; 
} 

cập nhật với wrapper div:

HTML

<div id="wrapper"> 
    <p>wrapper</p> 
    <div id="sidebar">sidebar</div> 
    <div id="content">content</div> 
    <p>wrapper</p> 
</div> 

CSS

* { 
    /* reset */ 
    margin: 0; 
    padding: 0; 
} 
html, 
body { 
    /* for demo purposes only */ 
    height: 100%; 
} 
#wrapper { 
    /* for demo purposes only */ 
    background: rgba(200, 200, 200, 0.6); 
    height: 100%; 
} 
#sidebar { 
    float: left; 
    width: 100px; 

    /* for demo purposes only */ 
    background: rgba(200, 200, 200, 0.6); 
    height: 50%; 
} 
#content { 
    margin-left: 100px; 

    /* for demo purposes only */ 
    background: rgba(200, 200, 200, 0.9); 
    height: 50%; 
} 

dụ làm việc: http://jsfiddle.net/kboucher/FK2tL/

+0

Chết tiệt, bạn đánh tôi bằng giây! – dezman

+1

@watson :) Tôi giành chiến thắng một lần trong một thời gian. –

+0

Điều đó hoạt động, cảm ơn. Nhưng #sidebar và #content đều tồn tại bên trong #wrapper. Vì lý do nào đó, chiều rộng của #content đang mở rộng #wrapper trước đây khoảng 200px, khiến thanh cuộn ngang xuất hiện. – Derek

0

Bạn cần phải chơi với chiều rộng% giống như phần còn lại của chúng tôi:

#content { 
     background: green; 
     float: left; 
     width: 75%; 
    } 

Tôi cũng cân nhắc việc thêm một div cha của chiều rộng: 100% theo mô hình hộp.

0

Chỉ cần thay đổi thuộc tính # content của bạn như thế này:

#content { 
      background: green; 
      float: left; 
      width: 100%; 
      margin-right: -200px; 
     } 

Vì vậy, chúng tôi đang thiết lập 100% chiều rộng như bạn yêu cầu, nhưng bù chiều rộng của hai DIV khác. Tôi đã học được mẹo này từ CSS Zen Garden.

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