Что означает стиль "видимость: скрытый" для элемента <html>? - программирование

Что означает стиль "видимость: скрытый" для элемента <html>?

Что делает стиль visibility:hidden при применении к элементу html? Имеет ли это какое-либо отношение к полосам прокрутки, особенно. в отношении IE7?

Предыстория: Oracle Apex генерирует этот код, и я пытаюсь работать, если это вызывает проблему с периодически скрытой горизонтальной полосой прокрутки в IE7:

<style> html {visibility:hidden;} </style>
4b9b3361

Ответ 1

Технические характеристики

В соответствии со спецификацией свойство visibility должно по-прежнему влиять на макет. Это подразумевает, что он не должен влиять на прокрутку, если элемент заканчивается тем, что вызывает поведение прокрутки. Кроме того, любые дочерние элементы, установленные в visible, должны быть видны внутри элемента hidden.


Наблюдаемое поведение

Используя эту скрипту...

Firefox, IE 8-10, Opera

Делает visibility: hidden в элементе html не отображает body (как и должно), но все же показывает некоторый рендеринг самого html, поскольку он показывает background-color. Как отметил в своем комментарии BoltClock, этого можно ожидать, так как background of html (согласно спецификации), чтобы стать...

"фон холста и его область рисования фона расширяются чтобы покрыть весь холст".

Эти браузеры также позволяют элементам вернуться к visible внутрь, чтобы показать, как указано спецификация для visibility, поэтому div показывает и может прокручиваться.

Chrome и Safari

Он не отображает background-color на html, но позволяет показать div, и он показывает полосы прокрутки. Таким образом, Chrome не распространяет свойство background на холст, предположительно потому, что его visibility был установлен в hidden.

IE7

Элемент background-color для элемента html не отображает (например, Chrome), но также нет полос прокрутки для элемента div внутри. Это, по-видимому, указывает на то, что он не подходит для размещения в спецификации.


Так может быть, что свойство visibility: hidden является частью вашей проблемы. Очевидно, что фоновая точка относится не к вашей проблеме прокрутки, а относится к точке вашего общего вопроса о том, как свойство влияет на элемент html.

По моему мнению, рендеринг Chrome и Safari будет казаться наиболее интуитивным (что я мог бы ожидать как конструктор), поскольку я не ожидал рендеринга background-color (поскольку элемент hidden), но в то же время, если я устанавливаю дочерний элемент как visible, тогда я ожидаю, что браузер позволит мне прокручивать от имени этого дочернего элемента, даже если обертка html установлена ​​на visibility: hidden. Однако, независимо от того, являются ли браузеры веб-браузера или другие браузеры ближайшими к спецификации аргументами, поскольку, как отмечает BoltClock в своем комментарии, спецификация не указывает, указывает ли visibility на элемент html или не влияет на распространение свойства background).