Сохранение веб-страницы с центром при появлении полосы прокрутки браузера и ее исчезновении

Очень простой вопрос, я думаю. У меня есть веб-сайт, на котором некоторые страницы, вероятно, будут вписываться в видимую вертикальную область браузера, а другие не будут (многие сайты должны быть такими). ​​

Когда пользователи просматривают с одной страницы на другую в браузере рабочего стола, вертикальная полоса прокрутки появляется и исчезает, в зависимости от страницы. Аффект заключается в том, что красиво центрированная страница продолжает перемещаться по ширине полосы прокрутки, когда пользователь просто выбирает другую навигационную ссылку - какой самый простой способ остановить это, не делая все мои веб-страницы одинаковой высоты?

Вторая часть - почему браузер для настольных компьютеров не просто резервирует область вертикальной полосы прокрутки, возможно, есть способ заставить их?

Ответ 1

Это делает (не работает с IE6):

body { overflow-y: scroll; }

Если вы также хотите всегда показывать горизонтальную полосу прокрутки, используйте следующую команду:

body { overflow: scroll; }

Ответ 2

Что касается вашего второго вопроса, не все сайты сделаны из центрированных страниц с фиксированной шириной, даже если это стало очень распространенным явлением. Даже в этом случае вы должны иметь страницы разной длины от щелчка до щелчка, чтобы раздражать этот сдвиг (BTW сдвигает на половина ширину полосы прокрутки;), что 8px на WinXP с классическая тема Win2k).

  • В начале были HTML-страницы без CSS: выравнивание по левому краю (или выравнивание по правому краю на иврите и арабском языках).
  • Затем появились постепенно таблицы HTML на 14 "CRT: каждый пиксель был драгоценным! (полная ширина, потому что 640kB достаточно мало кто представил, как он будет отображаться на 17" или 21 "CRT)
  • Затем появились столы с фиксированной шириной или divs: пиксели по-прежнему были ценны на дисплеях 1024px. С высотами < 768px, большинство страниц имели складку (или были сделаны с Flash).
  • Теперь идет CSS3 Media Queries, отображает ширину от 320 до 2560 пикселей (на каждый монитор!), прогрессивное улучшение или грациозную деградацию.
  • Страницы, такие как главная страница Google или веб-приложения, являются общими: нет необходимости в вертикальной полосе прокрутки!

Удачи вам в создании правила, если вы поставщик браузера, особенно учитывая недавнее исчезновение меню, баров и т.д. в Chrome, а затем в Firefox и, возможно, в других браузерах, которые могут указывать на то, что поставщики преследуют цель полноэкранного (я просто нажимаю F11, если хочу и хочу, чтобы мой адресный стол вернулся, но эта другая история:)) и что они, вероятно, будут неохотно "потерять" 20 пикселей по горизонтали.

На стороне примечания, возможно, вы, как разработчик этого сайта, больше всего раздражаетесь этим горизонтальным сдвигом, потому что вы показываете свой сайт весь день перед глазами и привыкли к щелчку именно в этой и той области даже не задумываясь об этом: вы знаете свой сайт как никто другой!
Это не относится к вашим посетителям, только немногие из них увидят это более двух раз, и вы должны быть свободными в Интернете, чтобы знать, откуда этот феномен, иначе это просто незначительное раздражение, как на нескольких других сайтах, которые они посетили, И вы должны учитывать, что может быть самым неприятным для посетителей:

  • отображение полосы прокрутки, которая на первый взгляд указывает, что они должны прокручиваться (прежде чем они с первого взгляда видят, что эта вертикальная полоса прокрутки отключена, поэтому на самом деле нет прокрутки)
  • 10px горизонтальный сдвиг время от времени