Датапикер начальной загрузки частично скрыт

Я имею в виду следующее средство выбора даты Bootstrap:

https://hackthestuff.com/article/how-to-use-bootstrap-datepicker-in-your-website

Я создал образец веб-страницы с навигационной панелью, которая содержит средство выбора даты. Вот полный HTML:

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<link rel="stylesheet"
    href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.js"></script>

<title>Test</title>
</head>

<body>
    <nav class="navbar navbar-expand-lg bg-dark navbar-dark fixed-top">
        <a class="navbar-brand" href="#">Test</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item active"><a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a></li>
            </ul>
            <form class="form-inline row">
                <input type="text" class="form-control my-1 mr-sm-2" data-date-format="dd/mm/yyyy" data-date-autoclose="true"
                    id="datepicker" style="width: 120px" value="12/04/2020" onkeydown="return false">
            </form>
        </div>
    </nav>

    <!-- If I comment out the whole div here, the whole calender will be visible. -->
    <div class="container-fluid" style="margin-top: 80px">
        <!-- Other stuff -->
    </div>

    <script type="text/javascript">
        $(document).ready(function() {
            $('#datepicker').datepicker();
        });
    </script>

</body>

Когда страница отображается как в IE, так и в Chrome, верхняя часть календаря не отображается из-за сдвига позиции календаря.

введите описание изображения здесь

Но если я удалю div под панелью навигации, будет виден весь календарь:

введите описание изображения здесь

Как я могу решить эту проблему? Мне нужен div под панелью навигации, поскольку он содержит основные элементы страницы.

Заранее спасибо.


person user3573403    schedule 12.04.2020    source источник


Ответы (1)


Измените margin-top: 80px; на padding-top: 80px;>

Поскольку вы добавили верхнее поле в 80 пикселей, календарь отображается некорректно.

Вот пример кода с правильным отображением календаря и сохранением контейнера. https://www.codeply.com/p/RDohpwmwAV

person Mark    schedule 13.04.2020
comment
Спасибо. Ранее я уже понял, что это margin-top: 80px; это вызвало проблему. Альтернативное решение - изменить фиксированный верх для навигационной панели на липкий верх. - person user3573403; 13.04.2020
comment
Хорошо, рад, что вы это поняли! - person Mark; 13.04.2020