2016-09-06 11 views
0

Я хочу показать вертикальную полосу прокрутки (если требуется) на div только при наведении этого div.HTML/CSS - Полоса прокрутки скрыта, но не свернута

Это достигается с помощью

.my-div-class { 
    overflow: hidden; 
} 

.my-div-class:hover { 
    overflow-y: auto; 
} 

Однако, когда появляется полоса прокрутки (при hover'ing) все содержимое внутри, что Div перемещается и обертывания, которые не желательно. У меня есть опция «предварительно зарезервировать» пространство для вертикальной полосы прокрутки всегда, так что мое содержимое div всегда завернуто (хотя сама полоса прокрутки прозрачна). И на ходу я просто делаю эту полосу прокрутки видимой.

Это должно быть кросс-браузер.

+1

Чтобы уточнить: [ответ от kizu] (http://stackoverflow.com/a/33264668/6697953) предоставляет решение, которое не запускает внутренний div для reflow. [Fiddle] (https://jsfiddle.net/2p1hatdg/) –

ответ

0

Вы пытались добавить правое заполнение и удалить его на мышь?

Что-то вроде этого:

.my-div-class { 
 
    overflow: hidden; 
 
    width:200px; 
 
    height:200px; 
 
    padding-right:18px; 
 
    box-sizing:border-box; 
 
    border:1px solid #333; 
 
} 
 

 
.my-div-class:hover { 
 
    overflow-y: auto; 
 
    padding-right:0; 
 
}
<div class="my-div-class"> 
 
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, 
 
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 
 
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse 
 
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 
 
proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
</div>

+0

Спасибо за ваш фрагмент! Я просто не хочу привязывать решение к точным значениям ширины полосы прокрутки. – Alec