Есть ли ошибка в визуализации CSS в Chrome? - PullRequest
12 голосов
/ 20 декабря 2011

Кажется, что в 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 link любезно предоставлено Sparky672

Обновление:

Это поведение было сообщено в WebKit Bugzilla и, похоже, что набор изменений, который представилошибка была обнаружена

Ответы [ 2 ]

34 голосов
/ 11 января 2012

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

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

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

0 голосов
/ 15 января 2012

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

Взлом кидзу хорош в качестве обходного пути, пока они не обратятся к нему снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...