Комментарии 32
2. -webkit-text-size-adjust: noneВот за это я бы руки отрывал. Часто текст слишком мелкий в портретной ориентации, поворачиваешь телефон горизонтально пытаясь сделать текст покрупнее, а он такой же мелкий. Иногда как бы издеваясь на долю секунды после поворота текст становится крупнее, а потом уменьшается. А в Reader Mode обычно половина контента отсутствует, или он вовсе не доступен.
Отключает масштабирование текста в горизонтальной ориентации.
Ну и забыли классику упомянуть: touch-action: manipulation (убирает задержку в 300ms на мобильных браузерах при таче)
Так что осторожней с ним!
И поддерживается многими браузерами, со своими префиксами конечно.
height: calc(100% + 70px);
padding-bottom: 70px;
по моему так блок тоже будет за пределами экрана.
То, что «background-attachment: fixed» не работает — это ещё не так плохо. Гораздо хуже, что это свойство в сочетании с «background-size: cover» делает так, что фоновое изображение растягивается по размеру всей страницы, а не по размеру экрана.
В результате получается так:
Приходится в CSS делать хаки для определения мобильного Safari и отключать для него «background-attachment: fixed».
Ещё бы актуальный способ «отключать» эластичный скролл.
Предыдущий уже не работает:
html, body {
height: 100%;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
Попробуйте position:fixed; width: 100%; height: 100%
, а скроллинг уже дла вложенного блока.
Этот хороший способ, ровно как и описанный мною, уже не работает.
Что же касается веб-приложений, то единственное, что можно сделать для предотвращения ужасающего скролла, при котором обнажается серый задний фон — это отслеживать любой touchmove и предотвращать его через event.preventDefault():
$(document).on('touchmove', function(event) {
event.preventDefault();
});
Но такой способ подходит только для веб-приложений не требующих скролла.
Надеюсь, что неправ и упустил какой-то рабочий способ.
«Доктор, да я не о том, я о ступеньках...»
Прошу прощения, в первом комментарии не уточнил, что речь идёт о веб-приложениях. Проблемы с эластичным скроллом именно там.
Так и у нас веб приложение. Или вы про Кордову? Там отдельный параметр надо в config.xml добавить.
Использовал ваше решение, только выставил:
overflow: visible;
Эластичного скролла нет. Я использую WKWebView, встроенный в iOS. Решал проблему с серым выделением при нажатии на пустую область. Другие решения не помогли.
Промахнулся с ответом.
а что на счёт прокрутки контента под модальным окном? есть красивые решения?
-webkit-overflow-scrolling:touch;
Не используйте это свойство, если будете через JS добавлять что-то в такой контейнер. Он просто перестанет скроллится, есть бага на это bugs.webkit.org/show_bug.cgi?id=158342
CSS и iOS Safari