Поплавок и отображение Webkit
У меня возникла проблема с браузерами Webkit (Chrome/Safari), CSS3 Media Queries, display
и float
на моем сайте. Установкой по умолчанию на моей веб-странице является поместить элемент nav
вправо и display:inline-block
. Когда размер окна изменяется на размер мобильного устройства, Media Queries восстанавливает его до: float:none; display:block
. Проблема возникает, когда размер браузера изменяется до нормального уровня: навигационный элемент падает с понижением на величину его высоты. Здесь несколько изображений и разметки:
Окно Нормальное и отображаемое на сайте правильно:
![Window Normal and Site Displayed Correctly:]()
Размер окна мобильного телефона, отображается правильно:
![Window Mobile Sized, Site Displayed Correctly]()
Окно, измененное по умолчанию, отображается неправильно:
![enter image description here]()
Здесь нормальный стиль для nav
(и да, я собираюсь переместить материал IE7 в отдельную таблицу стилей...)
nav {
text-align:center;
float:right;
display:inline-block;
*display:inline;
zoom:1;
margin-top:30px;
*margin-top:-70px;
}
Здесь медиа-запрос, который рестилирует nav
:
@media screen and (max-width:480px)
{
header nav
{
margin:0;
float:none;
display:block;
}
}
Итак, это ошибка Webkit или ожидаемое поведение? Я что-то делаю неправильно или Webkit? Если это ошибка, кто-нибудь знает какие-нибудь хорошие обходные пути? Живой сайт здесь, дайте мне знать, если мне нужно предоставить больше информации. Благодарю.
Ответы
Ответ 1
Я уменьшил это до: http://jsbin.com/opawal/
- Начните с окна шире, чем
480px
.
- Сделайте его меньше
480px
.
- Сделайте его больше
480px
.
- Произошел "прыжок" - чтобы он стал очевидным, нажмите F5.
Это ошибка.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
h2 {
display: inline-block;
}
nav {
float: right;
}
@media screen and (max-width:480px) {
nav {
float: none;
}
}
</style>
</head>
<body>
<h2>h2 element</h2>
<nav>nav element</nav>
</body>
</html>