【问题标题】:Vertically Assignment of Block in Page页中块的垂直分配
【发布时间】:2020-09-18 01:08:29
【问题描述】:

我正在学习 DJANGO,在继续学习的过程中,我想给一些页面漂亮的外观。我目前是编程新手(只有 4 个月的编码),大部分时间都花在 Python 上,可以抽出时间正确学习前端。

所以我的问题是我无法在页面中居中 LOGIN 块。我正在使用 Bootstrap4.5 并给了一些阴影来使对象像浮动。我现在在这里有类似的问题,有答案和大量关于使用自定义 CSS 或 Bootstrap Flex 或 Justify 居中元素的教程,我真的尝试了几乎所有我发现的东西,但没有结果。每次 Block 的时间位置都在其他地方而不是中心。

我的基本 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 %}

并附上页面外观的图片。 我真的不知道我还能尝试将登录块居中。我想要的只是将它放在导航栏下方的剩余空间中。

提前致谢!

【问题讨论】:

    标签: html css django bootstrap-4


    【解决方案1】:

    试试这个,通过将位置设置为absolute,您将相对于外部容器定位您的表单,因此您可以根据需要调整左侧和顶部的百分比。

    .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>

    【讨论】:

    • 好吧。实际上它帮助很大。通过将 left 和 top 放在 45 附近,它几乎居中。当我最小化浏览器时,它不会再次居中,但这并不重要,因为我只是在学习。非常感谢楼主!
    【解决方案2】:

    您可以为此使用 text-align 属性,如下所示。

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

    这将使父 DIV 内的所有内容居中。一种可选方法是使用具有预定义宽度和高度的 margin:auto CSS 属性。请关注以下主题以获取更多信息。

    【讨论】:

    • 嗨,感谢您的回答,但我现在尝试将父 DIV 添加到我的表单 DIV 中进行文本对齐,但没有结果。唯一改变的是元素(“用户名”和用户名输入等)在浮动框的中心对齐。以及要关注哪个主题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2023-01-08
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多