Какой CSS требуется для того, чтобы вертикальная полоса прокрутки браузера оставалась видимой, когда пользователь посещает веб-страницу (когда на странице недостаточно содержимого для запуска активации полосы прокрутки)?
Ты хоть представляешь, какая версия FF принесла поддержку overflow-y? Похоже, что -moz-scrollbars-verticalэто не рекомендуется в пользу overflow-yимущества.
Ionuț G. Stan
Я думаю, что Internet Explorer 6.x +, Firefox 1.5+, если я правильно помню. Я использовал приведенный выше код, и он работает в FF1.5-3.5.1 и IE6-8 для меня.
Corv1nus
2
Существуют ли альтернативы «переходу по страницам», когда некоторые страницы на вашем сайте слишком малы, чтобы иметь полосу прокрутки, а другие - нет? Или это «лучшая практика»? Я должен признать, я не вижу много страниц в сети, которые не занимают всю страницу.
Джесс
2
Я не уверен, что это лучший метод, но наличие полос прокрутки на всех страницах и активная только при необходимости, чтобы избежать переходов между страницами, обычно является приемлемым решением. Я предпочитаю постоянную полосу прокрутки, чем прыжок.
Corv1nus
1
Для тех (как я), которые находят стиль htmlнемного хакерским , обратите внимание, что вы можете использовать структурный псевдоселектор :rootвместо html. См .: developer.mozilla.org/en-US/docs/Web/CSS/:root
Рунин
31
Убедитесь, что для переполнения установлено значение «прокрутка», а не «авто». С этим сказал , в OS X Lion переполнение, установленное на «прокрутку», ведет себя больше как auto в том смысле, что полосы прокрутки все равно будут отображаться только при использовании. Так что, если какие-либо решения выше, похоже, не работают, может быть, поэтому.
Вещи изменились в последние годы. Ответы выше не действительны во всех случаях. Apple подталкивает исчезающие полосы прокрутки повсюду. Safari, Chrome и даже Firefox на MacO (и iO) показывают только полосы прокрутки при фактической прокрутке - я не знаю о текущей Windows / IE. Однако в Webkit есть нестандартные способы стилизации полос прокрутки (IE давно это не использовал).
Спасибо за этот отличный пункт на исчезающих полосах прокрутки. Для меня причина, чтобы держать полосу прокрутки видимой, состояла в том, чтобы избежать этого небольшого, но очень заметного и очень раздражающего рывка, поскольку содержание изменяется от прокрутки к не С исчезающими полосами прокрутки, они не дергают тело, когда показывают и прячутся, так что это нормально для меня. Но спасибо за этот отличный момент.
Noitidart
4
С точки зрения UX, в большинстве случаев мы хотим видеть полосу прокрутки. В соответствии с текущим трендом, если полоса прокрутки не видна, это дополнительный шаг, чтобы «попробовать» видимый список, чтобы узнать больше в списке. Дополнительная визуальная подсказка о том, что выпадающий список или список содержит больше элементов, не нужна, если люди видят полосу прокрутки.
windsurf88
24
html {
overflow-y: scroll;
}
Это то, что вы хотите?
К сожалению, Opera 9.64, похоже, игнорирует это объявление CSS применительно к HTMLили BODY, хотя оно работает и для других элементов уровня блока, таких как DIV.
Я использую это решение для разных браузеров (примечание: я всегда использую объявление DOCTYPE в 1-й строке, я не знаю, работает ли оно в режиме quirksmode, никогда не проверял его ).
Это всегда будет показывать АКТИВНУЮ вертикальную полосу прокрутки на каждой странице, вертикальная полоса прокрутки будет прокручиваться только из нескольких пикселей.
Когда содержимое страницы меньше видимой области браузера (порт просмотра), вы все равно увидите активную вертикальную полосу прокрутки, и она будет прокручиваться только на несколько пикселей.
В случае, если вы одержимы проверкой CSS (я одержим только проверкой HTML), используя это решение, ваш код CSS также будет проверяться для W3C, потому что вы не используете нестандартные атрибуты CSS, такие как -moz-scrollbars-vertical
Альтернативный подход - установить ширину HTML-элемента в 100vw. Во многих, если не в большинстве браузеров, это сводит на нет влияние полос прокрутки на ширину.
Установка высоты до 101% - это мое решение проблемы. Ваши страницы больше не будут «мерцать» при переключении между теми, которые превышают высоту области просмотра, и теми, которые не имеют.
Ответы:
Это делает полосу прокрутки всегда видимой и активной только при необходимости.
Обновление: если вышеупомянутое не работает, просто используя это, возможно.
источник
overflow-y
? Похоже, что-moz-scrollbars-vertical
это не рекомендуется в пользуoverflow-y
имущества.html
немного хакерским , обратите внимание, что вы можете использовать структурный псевдоселектор:root
вместоhtml
. См .: developer.mozilla.org/en-US/docs/Web/CSS/:rootУбедитесь, что для переполнения установлено значение «прокрутка», а не «авто». С этим сказал , в OS X Lion переполнение, установленное на «прокрутку», ведет себя больше как auto в том смысле, что полосы прокрутки все равно будут отображаться только при использовании. Так что, если какие-либо решения выше, похоже, не работают, может быть, поэтому.
Вот что вам нужно, чтобы это исправить:
Вы можете стилизовать его соответственно, если вам не нравится стиль по умолчанию.
источник
-webkit-appearance: none;
Вещи изменились в последние годы. Ответы выше не действительны во всех случаях. Apple подталкивает исчезающие полосы прокрутки повсюду. Safari, Chrome и даже Firefox на MacO (и iO) показывают только полосы прокрутки при фактической прокрутке - я не знаю о текущей Windows / IE. Однако в Webkit есть нестандартные способы стилизации полос прокрутки (IE давно это не использовал).
источник
Это то, что вы хотите?
К сожалению, Opera 9.64, похоже, игнорирует это объявление CSS применительно к
HTML
илиBODY
, хотя оно работает и для других элементов уровня блока, таких какDIV
.источник
Я использую это решение для разных браузеров (примечание: я всегда использую объявление DOCTYPE в 1-й строке, я не знаю, работает ли оно в режиме quirksmode, никогда не проверял его ).
Это всегда будет показывать АКТИВНУЮ вертикальную полосу прокрутки на каждой странице, вертикальная полоса прокрутки будет прокручиваться только из нескольких пикселей.
Когда содержимое страницы меньше видимой области браузера (порт просмотра), вы все равно увидите активную вертикальную полосу прокрутки, и она будет прокручиваться только на несколько пикселей.
В случае, если вы одержимы проверкой CSS (я одержим только проверкой HTML), используя это решение, ваш код CSS также будет проверяться для W3C, потому что вы не используете нестандартные атрибуты CSS, такие как
-moz-scrollbars-vertical
источник
body { height:101%; }
будет "обрезать" большие страницы.Вместо этого я использую:
источник
Я смог заставить это работать, добавив его в тег body. Было лучше для меня, потому что у меня нет ничего по элементу HTML.
источник
Альтернативный подход - установить ширину HTML-элемента в 100vw. Во многих, если не в большинстве браузеров, это сводит на нет влияние полос прокрутки на ширину.
источник
Установка высоты до 101% - это мое решение проблемы. Ваши страницы больше не будут «мерцать» при переключении между теми, которые превышают высоту области просмотра, и теми, которые не имеют.
источник
работает лучше для меня
источник
Я сделаю это:
Тогда мне не нужно смотреть на некрасивую полосу прокрутки, когда она не нужна.
источник