Подтвердить что ты не робот

Есть ли ошибка в визуализации видимости CSS CSS?

В Chrome 15+, похоже, странное поведение при использовании этой конкретной комбинации свойств CSS, а именно внешнего элемента с видимостью скрытого и фиксированного позиционирования и абсолютно или относительно расположенного внутреннего элемента, который имеет переопределение при видимости.

<html>
<head>
<title></title>
</head>
<body>
<div style="position:fixed;visibility:hidden;">
    <div style="position:absolute;visibility:visible;">
        <img src="https://www.google.com/intl/en_com/images/srpr/logo3w.png" />
    </div>
</div>
<script type="text/javascript">
for(var i=0; i<100; i++) {
    document.write("<br />");
}
</script>
</body>
</html>

Снимки кода выше создают это изображение при прокрутке. Chrome visibility issue

Тот факт, что как относительное, так и абсолютное позиционирование как воспроизводит поведение, можно отнести к тому факту, что для этого конкретного DOM абсолютное позиционирование эквивалентно относительному позиционированию.

В случае, если эта разметка действительна и имеет определенное поведение, это указывает на ошибку в движке браузера/рендеринга, и похоже, что оптимизация производительности ухудшилась, особенно учитывая, что это поведение было введено с помощью Chrome 15 обновление.

ссылка JSFiddle, предоставленная Sparky672

Update:

Об этом сообщается в WebKit Bugzilla и кажется, что набор изменений, введший ошибку, был идентифицирован.

4b9b3361

Ответ 1

Да, есть ошибка, определенно: мне удалось воспроизвести ее и в моей версии Chrome.

В случае, если вы захотите его исправить, вы можете добавить исправление "webkit hasLayout", -webkit-transform: translateZ(0); к обертке или внутреннему элементу, что заставляет Chrome правильно отображать блок.

Вот фиксированная скрипка: http://jsfiddle.net/kizu/bHzWN/6/show/

Ответ 2

Да, это ошибка. Кажется, это ошибка регрессии веб-набора, которая началась в версии 535, и заметна во многих версиях Chrome даже до 18.x

kizu hack прекрасен в качестве обходного пути, пока он не обратится к нему снова.