Моя установка Chrome обновилась вчера вечером (не сообщая и не спросив меня!)
Теперь интерпретирует относительное позиционирование CSS в процентах по сравнению со вчерашним днем.Предположим, у меня есть:
<body>
<div class="everything">
<div class="centerMe">
Center me!
</div>
</div>
</body>
И этот CSS:
body
{
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
}
.everything
{
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
}
.centerMe
{
position: relative;
top: 50%;
left: 50%;
}
В версии Chrome, которую я имел до прошлой ночи (6.x), и в этом отношении в Firefox 3.6.10 и IE 8, Center me!
появляется примерно в середине страницы, по вертикали и горизонтали .
Но в Chrome 7.0.517.41 он центрируется только по горизонтали.По вертикали он находится вверху страницы.
Было ли это изменение сделано намеренно для устранения давней неточности в рендеринге CSS, или это новая ошибка в 7.x, которую Google скоро исправит?
Примечания:
- Если я уберу
<div class="centerMe">
и соответствующий </div>
, то Chrome 7.x подчиняется вертикальному позиционированию, а Firefox и IE - нет!(т. е. все браузеры обращают свое поведение). - Если я изменю CSS для
.centerMe
на position: absolute;
, все протестированные мной браузеры будут работать согласованно, центрируясь по вертикали и горизонтали.В любом случае, это имеет больше смысла, поэтому может показаться разумным обходным путем для любого, кто сталкивается с проблемой как с проблемой. - Как всегда, поведение IE не имеет ничего общего с удалением, если только
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
не появляется в начале HTML.