如何将我的两个 <div> 放在同一个对齐上? [复制]

Posted

技术标签:

【中文标题】如何将我的两个 <div> 放在同一个对齐上? [复制]【英文标题】:How can I place my two <div> on the same alignment? [duplicate] 【发布时间】:2021-04-05 03:16:50 【问题描述】:

我希望“登录”和“注册”与顶部的高度对齐,请查看下面的示例以获得更清晰的信息

我也想成为这样的人

我也使用 Bootstrap 4,但不是为了我想做的事情,我在某处读到最好不使用 Bootstrap 自己做。

这是我使用的代码:

css:

.content
  height: calc(100vh - 100px);
  width: 100%;
  display: flex;
  align-items: center;
  overflow: hidden;


.content > div
  padding:10em;
  flex: 1;
  width: 100%;

html:

<div class="content">
        <div class="content-one">
            <h1>Login</h1>
            <form method="post">
                <div class="form-group">
                    <label>Username</label>
                    <div class="control">
                        <input type="text" class="form-control" name="username" placeholder="Username" />
                    </div>
                </div>

                <div class="form-group">
                    <label>Password</label>
                    <div class="control">
                        <input type="password" class="form-control" name="password" placeholder="Password" />
                    </div>
                </div>

                <div class="form-group">
                    <input value="Log in" type="submit" class="btn btn-red fw-4" />
                </div>
            </form>
        </div>
        <div class="content-two">
            <h1>Register</h1>
            <form action="/register" method="post">
                <div class="form-group">
                    <label>Username</label>
                    <div class="control">
                        <input type="text" class="form-control" name="username" placeholder="Username" />
                    </div>
                </div>

                <div class="form-group">
                    <label>Email</label>
                    <div class="control">
                        <input type="text" class="form-control" name="email" placeholder="Email">
                    </div>
                </div>

                <div class="form-group">
                    <label>Password</label>
                    <div class="control">
                        <input type="password" class="form-control" name="password" placeholder="Password" />
                    </div>
                </div>

                <div class="form-group">
                    <label>Are you a robot ?</label>
                    <div class="control">
                        <div class="g-recaptcha" data-sitekey="6Le18_YZAAAAAPZHps-_4XB3U6yTXh0dMFsJdJpF"></div>
                    </div>
                </div>

                <div class="form-group">
                    <div class="form-check">
                        <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
                        <p class="form-check-label" for="defaultCheck1">
                            I have read and agree <a href="#">the terms of use</a>.
                        </p>
                    </div>
                </div>

                <div class="form-group">
                    <input value="Register" type="submit" class="btn btn-grey" />
                </div>
            </form>
        </div>
    </div>

如果可以使用 Bootstrap 4 完成,我也可以。

【问题讨论】:

需要提供一个工作示例来测试代码或尝试align-items:flex-start;来解决问题。 对齐项目:弹性开始;将根据需要对齐它。在“align-items”属性中将“center”替换为“flex-start” @Coder111 ;这是我得到的minimal reproducible example(imgur.com/a/7tXWzKo) 还有@OnkarSingh 【参考方案1】:

删除 align-items: center; 样式并将填充设置为 0 3em(将 3em 更改为您想要的值)

.content 
  height: calc(100vh - 100px);
  width: 100%;
  display: flex;
  overflow: hidden;


.content>div 
  flex: 1;
  width: 100%;
  padding:0 3em; // Update 3em to fit your UI
<div class="content">
  <div class="content-one">
    <h1>Login</h1>
    <form method="post">
      <div class="form-group">
        <label>Username</label>
        <div class="control">
          <input type="text" class="form-control" name="username" placeholder="Username" />
        </div>
      </div>

      <div class="form-group">
        <label>Password</label>
        <div class="control">
          <input type="password" class="form-control" name="password" placeholder="Password" />
        </div>
      </div>

      <div class="form-group">
        <input value="Log in" type="submit" class="btn btn-red fw-4" />
      </div>
    </form>
  </div>
  <div class="content-two">
    <h1>Register</h1>
    <form action="/register" method="post">
      <div class="form-group">
        <label>Username</label>
        <div class="control">
          <input type="text" class="form-control" name="username" placeholder="Username" />
        </div>
      </div>

      <div class="form-group">
        <label>Email</label>
        <div class="control">
          <input type="text" class="form-control" name="email" placeholder="Email">
        </div>
      </div>

      <div class="form-group">
        <label>Password</label>
        <div class="control">
          <input type="password" class="form-control" name="password" placeholder="Password" />
        </div>
      </div>

      <div class="form-group">
        <label>Are you a robot ?</label>
        <div class="control">
          <div class="g-recaptcha" data-sitekey="6Le18_YZAAAAAPZHps-_4XB3U6yTXh0dMFsJdJpF"></div>
        </div>
      </div>

      <div class="form-group">
        <div class="form-check">
          <input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
          <p class="form-check-label" for="defaultCheck1">
            I have read and agree <a href="#">the terms of use</a>.
          </p>
        </div>
      </div>

      <div class="form-group">
        <input value="Register" type="submit" class="btn btn-grey" />
      </div>
    </form>
  </div>
</div>

【讨论】:

为了完整起见:Bootstrap 有spacing classes。无需在 CSS 中设置间距。【参考方案2】:

.content 上删除此属性align-items: center;

.content
  height: calc(100vh - 100px);
  width: 100%;
  display: flex;
  /*align-items: center;*/ /*remove this*/
  overflow: hidden;

【讨论】:

以上是关于如何将我的两个 <div> 放在同一个对齐上? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的图标放在页面中间并将文本放在图标下方?

如何使用 CSS 将图像放入 div 中?

水平对齐两个按钮 bootstrap4

如何在没有父级的情况下居中 DIV? [复制]

在HTML中,如何让两个DIV在同一行显示?

HTML中的中心表