2013-10-29 15 views
18

Tôi đang làm việc trên một bố cục trang với một thanh cuộn ngang. Tôi có một số bảng có chiều rộng cố định theo thứ tự ngang, tất cả đều có chiều cao khung nhìn. Tôi quyết định kiểm tra đơn vị vh để làm điều đó.Làm cách nào để ngăn các đơn vị vh bỏ qua thanh cuộn?

.panel { height: 100vh; } 

Điều này có hiệu quả, cho đến khi tôi nhận được thanh cuộn. Vấn đề là, vh bỏ qua chiều cao được sử dụng bởi thanh cuộn và do đó thêm thanh cuộn dọc.

Tôi muốn trừ chiều cao của thanh cuộn khỏi các phép đo của vh; có cách nào để làm điều này không?

+2

Làm thế nào về '.panel {height: calc (100vh-17px); } '. Tôi không biết thanh cuộn lớn như thế nào và nếu điều này phụ thuộc vào trình duyệt/hệ điều hành. – kleinfreund

+0

@kleinfreund Tôi đã thử điều này trước đây với các phiên bản Chrome và Safari mới nhất. Cả hai cung cấp cho tôi 'Mã thông báo CSS không mong muốn:)'. Và vẫn còn, sẽ có vấn đề với chiều cao thanh cuộn không xác định, như bạn đã đề cập trước đây. – Afterlame

+0

Sau đó, bạn có thể muốn dựa vào Javascript và tính toán chiều cao _actual_ của thanh cuộn của bạn. Nhưng tôi chắc chắn bạn muốn có một giải pháp dựa trên css tốt, mà sẽ là thích hợp hơn. Và có, tôi googled và viewport đơn vị và calc() không thực sự làm việc atm. – kleinfreund

Trả lời

5

Bạn có thể sử dụng phần tử cha với overflow-y: ẩn để đảm bảo rằng bạn không có thanh cuộn dọc và sau đó sử dụng an toàn 100vh bên trong nó. Đây là giả định rằng bạn thực sự cần 100vh vì lý do nào đó và không chỉ cần điền vào không gian dọc.

HTML

<div id="main"> 
    <div id="container"></div> 
</div> 

CSS

#main { 
    width:200vw; 
    height:100%; 
    background: red; 
    position: absolute; 
    overflow-y: hidden; 
} 

#container { 
    height: 100vh; 
    width:10px; 
    background: blue; 
} 
+0

Tôi không thấy ưu điểm trong việc sử dụng trang bìa bị tràn. Sau đó bạn chỉ có thể đặt chiều cao: 100% thành #container, không phải 100vh. –

+1

Tôi đồng ý rằng 100vh là không cần thiết và được gợi ý nhiều trong câu trả lời của tôi, nhưng câu hỏi là về các đơn vị xem cụ thể. – mirichan

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