2014-06-10 11 views
23

Tôi có 2 cột (khối nội tuyến) trong một vùng chứa (chiều rộng 100%).Cách hiển thị các khối nội tuyến mà không vi phạm chúng trên dòng mới khi thu hẹp phụ huynh

  1. Cột bên trái phải có chiều rộng tối thiểu, 200px, chiều rộng: 25%.

  2. cột bên phải có chiều rộng: 75%

    <style> 
    .outer { 
        width: 100%; 
        border: 1px solid black; 
    } 
    .left, .right { 
        display:inline-block; 
    } 
    .left { 
        min-width: 200px; 
        width: 25%; 
        background-color: #dcc2c2; 
    } 
    .right { 
        width: 75%; 
        background-color: #d0dee8; 
    } 
    </style> 
    
        <div class="outer"> 
         <div class="left">left</div> 
         <div class="right">right</div> 
        </div> 
    

Cho đến min-width đạt được khi thay đổi kích thước, các cột ngồi cạnh nhau mà là những gì tôi muốn, nhưng một khi min- chiều rộng đá vào, cột bên phải rơi trên dòng tiếp theo.

Làm cách nào để làm cho cột bên phải co lại nhưng không rơi vào dòng tiếp theo?

Link to JSFiddle

+1

bạn có thể sử dụng 'calc()' để hạn chế 'max-width' của cột bên phải http://jsfiddle.net/viphalongpro/4Bqvg/4/ Tuy nhiên 'calc()' không được hỗ trợ bởi IE8 (và bên dưới) –

Trả lời

28

Thêm white-space:nowrapoverflow:hidden đến bên ngoài:

.outer { 
    width: 100%; 
    border: 1px solid black; 
    white-space:nowrap; 
    overflow:hidden; 
} 

jsFiddle example

+0

Khắc phục của bạn không hoạt động tốt cho mọi tình huống như bạn có thể thấy ở đây: [** jsFiddle **] (https://jsfiddle.net/vogb32g8/) – fini007

+0

Tôi vừa mới gặp được giải pháp kỳ diệu này và tìm kiếm xung quanh, đây là lần gần nhất tôi tìm thấy. [Tài liệu MDN chỉ nói về các hiệu ứng 'không gian trắng' trên văn bản chứ không phải là phần tử] (https://developer.mozilla.org/en-US/docs/Web/CSS/white-space), làm cho điều này thậm chí còn hơn bí ẩn. Bạn có bất cứ điều gì giải thích tại sao điều này hoạt động? –

5

Bạn có thể sử dụng calc(100% - 200px) giữ chỗ cho nó làm việc!

.right { 
    width:75%; 
    max-width:calc(100% - 200px); 
    background-color: #d0dee8; 
} 

Fiddle

Info about css3 calc()

+1

Tuyệt vời, đó là những gì tôi muốn, cảm ơn bạn! –

+0

Hãy nhớ rằng nó không hoạt động trong IE8 hoặc cũ hơn (xem thông tin về liên kết css3 calc() trong câu trả lời của tôi). Nếu điều này phù hợp với bạn, vui lòng chấp nhận câu trả lời của tôi. Nếu không, hãy chấp nhận @ j08691 –

+0

Yea, biết rằng nó không hoạt động trong IE8 hoặc cũ hơn, nhờ một lần nữa để nhắc nhở. Nhưng như bạn đã nói giải pháp của @ j08691 dường như cũng đang hoạt động. –

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