Когда у вас есть Угловая маршрутизация, эта проблема становится чрезвычайно осознанной и раздражающей. Когда на одной из страниц есть полоса прокрутки, а вторая - нет, переключаясь между ними, вы заметите, что тело смещается справа налево и наоборот наоборот для ширины полосы прокрутки.
Есть ли элегантное решение для этого? Я думал о добавлении отступов/полей в правую сторону страницы (ширина полосы прокрутки), когда полоса прокрутки не существует в текущем маршруте/представлении, чтобы имитировать наличие полосы прокрутки и удаление этого сдвига. Вы можете рассчитать ширину полосы прокрутки, вычитая внутреннюю ширину из внешней ширины документа, а затем добавив результат в качестве дополнения/поля, но это не похоже на идеальное исправление для меня.
Есть ли лучший и, возможно, более элегантный или простой способ достичь этого?
Вы можете поместить CSS, чтобы всегда показывать полосу прокрутки (даже если для этого недостаточно контента, чтобы гарантировать ее)
Из https://css-tricks.com/snippets/css/force-vertical-scrollbar/
html {
overflow-y: scroll;
}
Вы можете заставить вертикальную полосу прокрутки показать, установив overflow-y: scroll
div {
overflow-y: scroll;
/* Additional styling for the demo */
display: inline-block;
width: 100px;
height: 100px;
border: 1px solid black;
}
<div></div>
<div><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/></div>