Отзывчивая форма входа в Bootstrap

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

<meta name="viewport" content="width=device-width, initial-scale=1.0">

и несколько комбинаций начальной загрузки col класса сетки, но безрезультатно.

<style>
.overlay {
    /* Height & width depends on how you want to reveal the overlay (see JS below) */
    height: 100%;
    width: 0;
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    left: 0;
    top: 0;
    background-color: rgb(0,0,0); /* Black fallback color */
    background-color: rgba(51, 51, 255, 0.9); /* Black w/opacity */
    overflow-x: hidden; /* Disable horizontal scroll */
    transition: 0.5s; /* 0.5 second transition effect to slide in or slide down the overlay (height or width, depending on reveal) */
}

/* Position the content inside the overlay */
.overlay-content {
    position: relative;
    top: 20%; /* 25% from the top */
    width: 100%; /* 100% width */
    text-align: center; /* Centered text/links */
    margin-top: 30px; /* 30px top margin to avoid conflict with the close button on smaller screens */
}

/* The navigation links inside the overlay */
.overlay a {
    padding: 8px;
    text-decoration: none;
    font-size: 36px;
    color: #818181;
    display: block; /* Display block instead of inline */
    transition: 0.3s; /* Transition effects on hover (color) */
}

/* When you mouse over the navigation links, change their color */
.overlay a:hover, .overlay a:focus {
    color: #f1f1f1;
}

/* Position the close button (top right corner) */
.overlay .closebtn {
    position: absolute;
}

/* When the height of the screen is less than 450 pixels, change the font-size of the links and position the close button again, so they don't overlap */
@media screen and (max-height: 450px) {
    .overlay a {font-size: 20px}
    .overlay .closebtn {
        font-size: 40px;
        top: 15px;
        right: 35px;
    }
}

<div id="myNav" class="overlay">
  <div class="overlay-content">
    <div class="container">
      <div class="row">
        <div class="col-12"> // column which contains the login form code
          <div id="loginform">
            // login form code
          </div>
          <div id="signupform">
        // signup form code 
            </div>
        </div>
      </div>
    </div>
  </div>

Это мой результат — Выходное изображение

Ценю любое понимание того, что я делаю неправильно и как это сделать.

Благодаря тонну.


person Nathan DMello    schedule 16.04.2018    source источник
comment
вы используете бутстрап версии 3 или 4?   -  person kashalo    schedule 16.04.2018
comment
Я думаю, что для устранения вашей проблемы требуется гораздо больше кода. У вас может быть что-то еще в CSS или где-то еще, что не позволяет остальной части страницы сжиматься. Возможно, вы устанавливаете ширину или что-то в этом роде. Пожалуйста, включите больше кода. И я также предоставлю вам несколько полезных ссылок и советов для публикации здесь.   -  person adprocas    schedule 16.04.2018
comment
@kashalo Я использую бутстрап 4   -  person Nathan DMello    schedule 16.04.2018
comment
Пожалуйста, проведите дополнительные исследования, затем опубликовать то, что вы пробовали с четким объяснением того, что не работает, и предоставить Минимальный, полный и проверяемый пример. Прочитайте Как задать хороший вопрос. Не забудьте пройти экскурсию и прочитать this.   -  person adprocas    schedule 16.04.2018
comment
А также я бы удалил align="center" и использовал 'class=col-xs-12 col-md-12 text-center'   -  person adprocas    schedule 16.04.2018
comment
Ваш код устарел для BS4 (префикс -xs- больше не существует. Возможно, вы захотите обновить информацию о переходе с 3.x на 4.x перед публикацией MCVE: getbootstrap.com/docs/4.1/migration   -  person Robert    schedule 16.04.2018
comment
@RobertC, я не использовал bootstrap 4 - похоже, он в значительной степени ориентирован на мобильные устройства. Для OP это означает, что вы должны использовать col-12 вместо col-xs-12 col-md-12 - getbootstrap.com/docs/4.1 /макет/сетка   -  person adprocas    schedule 16.04.2018
comment
@adpro - это так. У нас также недостаточно кода, чтобы действительно знать, правильно ли вставляется сетка (без указания .row или .container), что может объяснить проблемы макета, которые пытается описать OP.   -  person Robert    schedule 16.04.2018
comment
@RobertC, да, именно к этому я и шел со своим первым комментарием о необходимости большего количества кода. Приятно видеть, что начальная загрузка действительно сдвинула вещи в направлении, которое я могу оценить с помощью mobile-first, хотя я думаю, что эволюция имеет смысл.   -  person adprocas    schedule 16.04.2018
comment
@adpro Спасибо. Я обновил фрагменты, а также включил некоторые соответствующие CSS.   -  person Nathan DMello    schedule 16.04.2018
comment
@RobertC Пытался переключиться на bootstrap 3, но проблема не устранена.   -  person Nathan DMello    schedule 16.04.2018
comment
Почему width: 0;?   -  person adprocas    schedule 16.04.2018
comment
Должно быть нечто большее, чем это происходит. Я могу заставить его работать с помощью этого jsfiddle, хотя это некрасиво. Я удалил width: 0 в классе наложения, так как это скрывало все. Но даже с наличием col-xs-12 все работало нормально. Это заставляет меня поверить, что у вас есть другие проблемы с родительскими объектами. Я бы посоветовал покопаться в Bootstrap 4, чтобы лучше понять, что происходит и что вы должны делать. jsfiddle.net/ubb8sxm3/8   -  person adprocas    schedule 16.04.2018
comment
@NathanDMello - когда я смотрю на ваш код, я думаю, что это не столько о Bootstrap, сколько о том, как вы пытаетесь создать это пользовательское наложение с помощью position:fixed. Вы пытались удалить width из .overlay-content?   -  person Robert    schedule 16.04.2018


Ответы (2)


Попробуйте использовать класс form-group вместо формы входа и формы регистрации. Это может сделать веб-форму адаптивной для мобильных устройств.

Проверьте: Документ формы Bootstrap

person Harish ST    schedule 16.04.2018
comment
Использование col- должно быть отзывчивым без form-group, хотя было бы лучше использовать его. - person adprocas; 16.04.2018

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

Убедитесь, что вы используете <!doctype html>

Чтобы убедиться, что Bootstrap 4 работает правильно в Safari, используйте shrink-to-fit=no — см. Что делает мета-атрибут окна просмотра "Сжать до подгонки"?

Используйте класс начальной загрузки для text-center вместо атрибута HTML align — см. Text — Bootstrap

Поскольку ваш класс всегда будет иметь col-XX-12 на основе вашего примера, просто используйте col-12. См. Система сетки.

Как упоминалось в приведенном выше примере, это хорошее место для использования form-group — см. Формы — Boostrap< /а>

В общем, начните с Введение — Bootstrap

<!doctype html>
<html lang="en">

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>


<body>
<div class="col-12 text-center"> // column which contains the login form code
  <div id="loginform">
  // login form code
  </div>
  <div id="signupform">
    // signup form code 
  </div>
</div>

</body>
</html>
person adprocas    schedule 16.04.2018