Измените цвет строки состояния iOS 7 в Safari и Chrome

Я хочу изменить цвет строки состояния iOS 7 в Safari и Chrome. Я работаю над мобильным веб-приложением и хочу, чтобы он чувствовал себя родным и сейчас, я просто получаю белую строку статуса.

What I want to change

Ответы

Ответ 1

Я использую это, в то время как у ios есть ошибка, упомянутая в других ответах.

Сначала я установил строку состояния следующим образом:

<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

Для меня это означает, что текст белый и фон прозрачны. Он также плавает над моим контентом.

Тогда у меня есть следующий css:

body{
    background:#dddddd;
}
body:before{
    display: block;
    content: " ";
    height:20px;
    top: 0;
    background:rgba(0,0,0,0.8);
    position:-webkit-sticky;
    position:sticky;
}

При таком подходе у меня темный фон на моей панели статусов с некоторой прозрачностью.

Я не тестировал это с помощью ios6, и он, вероятно, сломается, как только Apple исправит ошибку. Кроме того, он немного сбивается при прокрутке вверх, а эффект отскока перемещает фон из окна состояния.

Тем не менее, это довольно легко исправить, и в основном CSS.

Ответ 2

Обновление 3

minimal-ui был удален в iOS 8: (Подробнее здесь: iOS 8 удален "минимальный-ui" viewport, есть ли другой "мягкий полноэкранный режим" , решения?

Обновление 2

В iOS 7.1 появилась новая ошибка. Независимо от того, какой параметр content установлен, и независимо от страницы background-color, строка состояния всегда полупрозрачна, когда пользователь добавляет веб-приложение на главный экран. См. Демонстрацию здесь.

Обратите внимание, что в iOS 7.1 появился новый тег minimal-ui, который помогает скрыть браузер Chrome в Mobile Safari, но ничего не делает, когда добавляется на главный экран. Подробнее здесь.

Update

Все еще ошибка в 7.0.4.


Кажется, что ошибка в iOS 7.0.3.

Не имеет <meta name="apple-mobile-web-app-status-bar-style">, определяемый или определяющий его как content="default"= черный фон с черным текстом.

content="black"= черный фон с белым текстом.

content="black-translucent"= черный фон с белым текстом, если фон холста не является чисто белым (FFF). Или полупрозрачный фон с черным текстом, если фон белый.

Любое другое значение content, такое как white, не работает и отображается поведение default.

enter image description here

Подтверждено этой ссылкой: http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review

Ответ 3

Я искал способ сделать то же самое. Единственные варианты, которые я видел до сих пор, включают использование одного из этих трех метатегов в вашем html-документе.

<meta name="apple-mobile-web-app-status-bar-style" content="default">

<meta name="apple-mobile-web-app-status-bar-style" content="black"> Это делает черту статуса черной и подталкивает содержимое ниже строки состояния.

<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> Это заставляет контент заходить в строку состояния.

Ответ 4

Вы можете повлиять на оттенок верхнего бара в сафари, изменив цвет фона тела

body {
  background-color: blue; /* for the tint */
  background-image: linear-gradient(to bottom, green 0%, green 100%); /* for the body */
}

через http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review