Как сделать фоновое отображение на весь экран (Safari)

На телефонах Safari сверху появляется ужасная белая полоса. Я бы хотел, чтобы он был заполнен фоном

Например, на этом сайте такой полоски сверху нет.

HTML-файл:

<!DOCTYPE html>
<html lang = "ru">
<head>
    <meta charset = "UTF-8">
    <meta http-equiv = "X-UA-Compatible" content = "IE=edge"/>
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0, viewport-fit=cover">
    <title>Авторизация</title>
    <link rel = "stylesheet" href = "/css/login.css?v=1.1.4">
</head>
<body>
    <div class = "container-border active">
    </div>
</body>
</html>

CSS-файл:

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    color: white;
}

html, body {
    height: 100vh;
    overflow-y: hidden;
    background: linear-gradient(180deg, hsl(250, 15%, 30%), hsl(250, 15%, 10%));
}

body {
    display: flex;
    align-items: center;
    justify-content: center;
}

Не могли бы вы использовать <> (фрагмент Javascript/HTML/CSS), чтобы изменить запрашиваемый код и ожидаемый статус в исполняемую форму?

NINE 20.08.2024 10:56

У меня нет Safari, поэтому я не могу проверить это самостоятельно; если вы используете: height: 100dvh; или height: 100lvh;, проблема решается? Или, возможно, попробуйте использовать min-height: 100vh; (также протестируйте блоки lvh и dvh). Документация по единицам области просмотра: Developer.mozilla.org/en-US/docs/Web/CSS/…

David Thomas 20.08.2024 11:05

@DavidThomas К сожалению, это ни на что не повлияло. :(

EFERYEG 20.08.2024 11:12

Думаю, это зависит от настроек ios... allthings.how/… Это будет непросто?

NINE 20.08.2024 11:22

Я думаю, что большинство из них заполняют похожие цвета цветами темы. Хотите проверить? stackoverflow.com/questions/70856591/…

NINE 20.08.2024 11:39
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
5
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я полагаю, вы имеете в виду изменение цвета строки состояния?

Попробуйте добавить метатег apple-mobile-web-app-status-bar-style. Вы можете ознакомиться с разделом «Изменение внешнего вида строки состояния» на этой странице

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

Или вы можете попробовать добавить метатег theme-color. тема-цвет

Да!!! Это именно то, что мне нужно. Есть только одна маленькая проблема. Я использую градиент в качестве фона. Я выбрал цвет темы #454158, как верхнюю часть градиента. Но внизу, если потянуть страницу вверх, появляется тот же цвет и градиент снизу нарушается. Это не так критично, но можно ли это тоже исправить? извините за мой английский

EFERYEG 20.08.2024 11:30

@EFERYEG Единственный способ исправить это — вручную изменить цвет при прокрутке. Возможно, лучше изменить дизайн страницы, чтобы сделать ее непрокручиваемой.

Will Carter 20.08.2024 11:42

Я проверил это на сафари.

изображения

Код

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  color: white;
}

html {
  padding-top: env(safe-area-inset-top);
  }

html, body {
  height: 100vh;
  overflow-y: hidden;
  background: linear-gradient(180deg, hsl(250, 15%, 30%), hsl(250, 15%, 10%));
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
}
<!DOCTYPE html>
<html lang = "ru">
<head>
    <meta charset = "UTF-8">
    <meta http-equiv = "X-UA-Compatible" content = "IE=edge"/>
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0, viewport-fit=cover">
    <meta name = "theme-color" content = "hsl(250, 15%, 30%)"/>
    <title>Авторизация</title>
    <link rel = "stylesheet" href = "test.css">
</head>
<body>
    <div class = "container-border active">
    </div>
</body>
</html>

Супер! Спасибо большое) А можно ли еще сделать, чтобы страница не прокручивалась? У меня есть только один элемент посередине страницы с кнопкой. В Safari он расположен не посередине, а чуть ниже. И страницу можно прокрутить немного вниз height: 100dvh решает эту проблему, но я не знаю, правильно ли это делать. Возможно, есть лучшие варианты сделать страницу статичной.

EFERYEG 20.08.2024 11:52

Нет, theme-color просто устанавливает для него цвет, аналогичный цвету содержимого страницы, и не меняется при прокрутке. Если это дизайн с фиксированным заголовком вверху, но... @EFERYEG

NINE 20.08.2024 11:57

Другие вопросы по теме