Вертикальное размещение блока на странице - PullRequest
1 голос
/ 30 мая 2020

Я изучаю DJANGO и, продолжая, хотел хорошенько рассмотреть некоторые страницы. В настоящее время я новичок в программировании (всего 4 месяца программирования) и в основном проводил время с Python, мог найти время, чтобы правильно изучить интерфейс.

Итак, моя проблема в том, что я не могу центрировать блок LOGIN в страница. Я использую Bootstrap4.5 и добавил немного тени, чтобы объект был похож на плавающий. Теперь у меня были похожие вопросы с ответами и множеством руководств по центрированию элементов с помощью пользовательских CSS или Bootstrap Flex или Justify, и я действительно пробовал почти все, что нашел, безрезультатно. Каждый раз, когда позиция блока перемещается в другое место, но не в центр.

Моя база HTML:

<!DOCTYPE html>
{% load static %}
<html lang="en" dir="ltr">
  <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.5.0/css/bootstrap.min.css"
          integrity="sha384- 
          9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" 
          crossorigin="anonymous">

    <link rel="stylesheet" href="{% static 'css/base.css' %}">

    <title>Newspaper Project</title>
  </head>

  <body>
    <nav class="navbar navbar-expand-md navbar-dark bg-dark mb-4">
      <a class="navbar-brand" href="{% url 'home' %}">Newspaper</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse"
          data-target="#navbarCollapse" aria-controls="navbarCollapse"
          aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarCollapse">
        {% if user.is_authenticated %}
          <ul class="navbar-nav ml-auto">
            <li class="nav-item">
              <a class="nav-link dropdown-toggle" href="#" id="userMenu"
                data-toggle="dropdown" aria-haspopup="true"
                aria-expanded="false">
                {{ user.username }}
              </a>
              <div class="dropdown-menu dropdown-menu-right"
                aria-labelledby="userMenu">
                <a class="dropdown-item" href="{% url 'password_change'%}">Change     
                                                                           password</a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="{% url 'logout' %}">Log Out</a>
              </div>
            </li>
          </ul>
        {% else %}
          <form class="form-inline ml-auto">
            <a href="{% url 'login' %}" class="btn btn-outline-secondary">Log In</a>
            <a href="{% url 'users:signup' %}" class="btn btn-outline-info ml-2">Sign up</a>
          </form>
        {% endif %}
      </div>
    </nav>

<div class="container">
  {% block content %}

  {% endblock %}
</div>



<!-- JAVASCRIPT BOOTSTRAP -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
        integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
        integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>

  </body>
</html>

Мой логин HTML:

{% extends "base.html" %}

{% load crispy_forms_tags %}

{% block content %}

  {% if user.is_authenticated %}
    <h2>You are already logged in!</h2>
    <a href="{% url 'logout' %}">Log Out</a>
  {% else %}
      <form class="shadow-lg p-3 mb-5 bg-white rounded login" method="post">
        {% csrf_token %}
        {{ form|crispy }}
        <button class="btn btn-success" type="submit">Log In</button>
      </form>
  {% endif %}

{% endblock %}

И прикрепил изображение, как страница выглядит. Screenshot Я действительно не знаю, что еще я могу попытаться центрировать блок входа в систему. Все, что я хочу, - это центрировать его под панелью навигации на оставшемся пространстве.

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

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Попробуйте это, установив позицию на absolute, вы позиционируете свою форму относительно внешнего контейнера, так что вы можете настроить процентное соотношение слева и сверху, когда вы будете sh.

.div {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: 150px;
  height: 150px;
  margin: -75px 0 0 -75px;
}
<body>

  <div class="div">
    <h3> Hi, I'm just an example form ?</h3>
    <input><br>
    <input><br>
    <button>click me</button>

  </div>
</body>
1 голос
/ 30 мая 2020

Вы можете использовать для этого атрибут text-align следующим образом:

<div style="text-align:center"><form id="form_login"><!--form content here--></form></div>

Это будет центрировать все содержимое внутри родительского DIV. Необязательный способ - использовать атрибут margin: auto CSS с предопределенной шириной и высотой. Пожалуйста, следуйте следующей ветке для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...