Как я могу предотвратить затенение контента виртуальной клавиатурой Android? Начальная загрузка 4

Я решаю следующую задачу. У меня есть "навигатор", как это:

<nav class = "navbar navbar-expand-lg navbar-dark bg-dark">
<button class = "navbar-toggler" type = "button" data-toggle = "collapse" data-target = "#navbarTogglerDemo01" aria-controls = "navbarTogglerDemo01" aria-expanded = "false" aria-label = "Toggle navigation">
    <span class = "navbar-toggler-icon"></span>
</button>
<div class = "collapse navbar-collapse" id = "navbarTogglerDemo01">
    <a class = "navbar-brand" href = "#">PPŘ</a>
    <ul class = "navbar-nav mr-auto mt-2 mt-lg-0">
        <li class = "nav-item active">
            <a class = "nav-link dropdown-toggle" href = "#">ŠKOLENÍ<span class = "sr-only">(current)</span></a>
        </li>
        <li class = "nav-item">
            <a class = "nav-link dropdown-toggle" href = "#">ODKAZY</a>
        </li>
        <li class = "nav-item">
            <a class = "nav-link dropdown-toggle" href = "#">LEGISLATIVA</a>
        </li>
        <li class = "nav-item">
            <a class = "nav-link dropdown-toggle" href = "#">INFO PORTÁL</a>
        </li>
        <li class = "nav-item dropdown">
            <a class = "nav-link" href = "#login" data-toggle = "collapse" role = "button"
                data-toggle = "dropdown" data-target = "#loginDropdown" aria-haspopup = "true" aria-expanded = "false">Přihlásit se</a>
            <!-- Přihlašovací formulář -->
            <div class = "dropdown-menu" id = "loginDropdown" style = "max-height:200px; overflow-y:auto; position: relative">
            <form class = "px-4 py-3">
                <div class = "form-group">
                    <label for = "exampleDropdownFormEmail1">Email</label>
                    <input type = "email" class = "form-control" id = "exampleDropdownFormEmail1" placeholder = "[email protected]">
                </div>
                <div class = "form-group">
                    <label for = "exampleDropdownFormPassword1">Heslo</label>
                    <input type = "password" class = "form-control" id = "exampleDropdownFormPassword1" placeholder = "Heslo">
                </div>
                <div class = "form-check">
                    <input type = "checkbox" class = "form-check-input" id = "dropdownCheck">
                    <label class = "form-check-label" for = "dropdownCheck">Pamatuj si mně</label>
                </div>
                    <button type = "submit" class = "btn btn-primary">Login</button>
            </form>
            <div class = "dropdown-divider"></div>
                <a class = "dropdown-item" href = "#">Jsi zde po prvé? Registruj se!</a>
            </div>
        </li>
    </ul>
    <form class = "form-inline my-2 my-lg-0">
        <input class = "form-control mr-sm-2" type = "search" placeholder = "Hledej..." aria-label = "Search">
        <button class = "btn btn-outline-success my-2 my-sm-0" type = "submit">Vyhledat</button>
    </form>
</div>

На стационарном компьютере работает безупречно. Но проблема в мобильном устройстве. После нажатия на кнопку «Войти» на панели навигации откроется форма входа. Проблема возникает, когда вы нажимаете на поле ввода этой формы и открывается виртуальная клавиатура, которая закрывает почти всю форму входа. Я хотел бы, чтобы виртуальная клавиатура Android нажимала эту форму входа друг над другом.

Я попытался решить проблему. Определите относительное положение элемента с формой. Так:

<div class = "dropdown-menu" id = "loginDropdown" style = "max-height:200px; overflow-y:auto; position: relative">

Однако проблема не может быть решена. Большое спасибо.

Вам нужно будет добавить медиа-запрос на основе высоты, чтобы изменить и соответствующим образом изменить CSS.

NigelDcruz 15.12.2020 07:55

Спасибо. Я знаю только основные вещи о css. Как выполняется такой запрос высоты носителя? Не могли бы вы привести пример? Спасибо. @НайджелДкруз

Petr Fořt Fru-Fru 15.12.2020 08:10

Конечно, я написал ответ для того же.

NigelDcruz 15.12.2020 08:23
Улучшение производительности загрузки с помощью 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
3
326
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Когда клавиатура устройства открывается, фактический размер области просмотра уменьшается. Это вызывает проблему, с которой вы столкнулись.

Решение: Вам нужно добавить медиа-запрос CSS на основе высоты. Вам нужно будет проверить размер области просмотра, когда клавиатура открыта, и добавить необходимый CSS в медиа-запрос.

Например: Приведенный ниже медиа-запрос проверяет высоту области просмотра и добавляет черный фон ко всем элементам.

@media screen and (max-height: 200px){ //Change 200 to viewport height after keyboard opns
  *{
    background-color: #000;
  }
}

Спасибо. Но я не могу с этим справиться. Я так облажался. @NigeDcruz

Petr Fořt Fru-Fru 15.12.2020 10:06

Спасибо, ваш ответ мне помог. @NigeDcruz

Petr Fořt Fru-Fru 21.12.2020 01:33

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