Tôi đã gặp sự cố trên trình duyệt webkit (IE và FF là ok), nơi không gian thanh cuộn được dành riêng cho một phần tử mặc dù thanh cuộn không hiển thị. Bạn có thể thấy trong ví dụ rằng một khi phần giữa bị lơ lửng thì không gian thanh cuộn vẫn được đặt trước. Tôi chỉ tự hỏi nếu đây là vấn đề với Chrome hay chỉ là một phần của thông số HTML/CSS. Điều này tương tự question cung cấp một sửa chữa nhưng nó không giải thích nếu nó là một lỗi hay không và phải thiết lập một chiều rộng rõ ràng trên trẻ em không phải là những gì tôi muốn làm.Chrome giữ dung lượng cho thanh cuộn ngay cả khi nó bị ẩn
.hidden-scroll {
background: black;
overflow-y: hidden;
height: 400px;
width: 300px;
}
.hidden-scroll:hover {
overflow-y: auto;
}
.no-hover.hidden-scroll:hover {
overflow-y: hidden;
}
.hidden-scroll-content {
background: red;
height: 50px;
}
<body>
<div>No scroll needed</div>
<div class="hidden-scroll">
<div class="hidden-scroll-content">1</div>
<div class="hidden-scroll-content">2</div>
<div class="hidden-scroll-content">3</div>
<div class="hidden-scroll-content">4</div>
</div>
<div>Scroll on hover</div>
<div class="hidden-scroll">
<div class="hidden-scroll-content">1</div>
<div class="hidden-scroll-content">2</div>
<div class="hidden-scroll-content">3</div>
<div class="hidden-scroll-content">4</div>
<div class="hidden-scroll-content">5</div>
<div class="hidden-scroll-content">6</div>
<div class="hidden-scroll-content">7</div>
<div class="hidden-scroll-content">8</div>
<div class="hidden-scroll-content">9</div>
<div class="hidden-scroll-content">10</div>
<div class="hidden-scroll-content">11</div>
<div class="hidden-scroll-content">12</div>
</div>
<div>No scroll on hover</div>
<div class="no-hover hidden-scroll">
<div class="hidden-scroll-content">1</div>
<div class="hidden-scroll-content">2</div>
<div class="hidden-scroll-content">3</div>
<div class="hidden-scroll-content">4</div>
<div class="hidden-scroll-content">5</div>
<div class="hidden-scroll-content">6</div>
<div class="hidden-scroll-content">7</div>
<div class="hidden-scroll-content">8</div>
<div class="hidden-scroll-content">9</div>
<div class="hidden-scroll-content">10</div>
<div class="hidden-scroll-content">11</div>
<div class="hidden-scroll-content">12</div>
</div>
</body>
Đây có thể là một lỗi trong Blink & Webkit. Bạn chắc chắn nên báo cáo điều này. Tôi đã thử nghiệm trong Firefox chỉ và nó hoạt động chính xác. Tôi đã thực hiện thêm một vài thử nghiệm và Chrome có vẻ hoạt động chính xác chỉ với văn bản. Đây là hành vi đúng http://jsfiddle.net/650pyaq2/1/ Hành vi này sai trái http://jsfiddle.net/re4o23zr/ – user3448600