Фиксированная позиция не работает в Safari 7
у меня есть фиксированная позиция div, которая сидит в нижней части экрана, когда я прокручиваю, не двигаясь. Однако в Safari этот div действует так, как будто он абсолютно позиционирован и перемещается вверх и вниз с остальной частью контента. Когда я нажимаю "проверить элемент", программируемое (желаемое) местоположение подсвечивается, а не визуальное (фактическое?) расположение.
Я не могу воссоздать эту проблему в скрипку. Это не происходит в Chrome, FF или IE (10+).
вот скриншот разница между визуальным (поле подсчета символов) и запрограммированным местоположением (выделенная область).
поверх них есть более актуальные слои css и html, но вот непосредственный код:
HTML-код упрощенный
<article class="parent">
<article class="inner-wrapper">
<div id="counter">
Character Count: <span class="tally">*javascript calculation*</span>
</div>
</article>
</article>
scss
article.parent {
max-width: rem(640);
margin: 0 auto rem(30) auto;
padding: 0 rem(10);
#counter {
position: fixed;
border: #888 solid 1px;
bottom: 130px;
left: 10px;
border-radius: 5px;
padding: 10px;
background: rgba(255, 255, 255, .8);
font-size: .8em;
min-width: 150px;
}
}
Как я могу заставить этот div вести себя в Safari, так что визуальный сидит поверх запрограммированного местоположения?
2 ответов
ОШИБКА НАЙДЕНА:
я смог отследить ошибку до "трюка" аппаратного ускорения, который мы использовали, включив эти два правила в родительский элемент:
transform: translateZ(0)
perspective: 1000
удалив эти два правила, элемент теперь ведет себя так, как ожидалось. Более подробная информация об этом вопросе здесь:производительность CSS относительно translateZ (0)
Бонус Исправление Ошибок: удаление этих правил в теле HTML вызвало различные проблемы перекрытия элементов в нашем Тесты PhantomJS / Poltergeist. По-видимому, PhantomJS не перемещает элементы должным образом самостоятельно. Мы включили эти правила только для испытаний и в настоящее время все работает нормально.
ОРИГИНАЛЬНОЕ РЕШЕНИЕ:
я смог исправить эту проблему, потянув счетчик из родительского контейнера:
<article class="parent">
<article class="inner-wrapper">
...
</article>
<div id="counter">
Character Count: <span class="tally">*javascript calculation*</span>
</div>
</article>
попробуйте эту скрипку
http://jsfiddle.net/sosypjLg/1/
#counter {
position: fixed;
bottom: 0;
width: 100%;
}
вам нужен этот стиль CSS