如何在引导程序中垂直对齐 div 的内容? [复制]

Posted

技术标签:

【中文标题】如何在引导程序中垂直对齐 div 的内容? [复制]【英文标题】:How to vertically align contents of div in boostrap? [duplicate] 【发布时间】:2017-11-30 00:54:36 【问题描述】:

我有这个:

#rightHeader 
  height: 450px;
  vertical-align: middle;
  display: inline-block;
<div id="header" class="header">
    <div class="container">
        <div class="row">
            <div id="headerBox" class="col-md-5 text-center">
                <form id="signup" action="" method="post">
                <h1>text</h1>
                <p>text</p>
                <input id="inputField1" class="form-control" placeholder="First Name" type="text" tabindex="1" required>
                <input id="inputField2"  class="form-control" placeholder="Your Email" type="email" tabindex="1" required>
                <input id="inputField2"  class="form-control" placeholder="Password" type="email" tabindex="1" required><br>
                <button class="btn btn-lg btn-primary">Join For Free</button>
                </form>
            </div>
            <div id="rightHeader" class="col-lg-7 text-center">
                <ul>
                    <li>text.</li>
                </ul>
            </div>
        </div>
    </div>
</div>

对于 rightHeader 文本,我必须使用 margin-top 来使文本可见(否则它太高并离开屏幕)。如何在不使用 margin-top 的情况下将 div 中的文本垂直居中?

谢谢

【问题讨论】:

你能自定义你用id(#rightHeader)配置的css吗。 你能把输出的图像是什么样子吗? 【参考方案1】:

看看 CSS3 flexbox。你可以用它做很多事情。应该是这样的:

#rightHeader 
  height: 200px;
  display: flex;
  align-items: center;
  border: 1px solid #666;
<div id="rightHeader" class="col-lg-7 text-center">
    <ul>
        <li>text.</li>
    </ul>
</div>

【讨论】:

文字还在div的顶部 您使用的是哪个浏览器?它甚至可以在 Microsoft Edge 中使用...在我的浏览器中它居中【参考方案2】:

#rightHeader 
  height: 450px;
  vertical-align: middle;
  display: inline-block;
  align-items:center;
  justify-content:center;
  display:flex;
  border:thin black solid;
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div id="header" class="header">
    <div class="container">
        <div class="row">
            <div id="headerBox" class="col-md-5 text-center">
                <form id="signup" action="" method="post">
                <h1>text</h1>
                <p>text</p>
                <input id="inputField1" class="form-control" placeholder="First Name" type="text" tabindex="1" required>
                <input id="inputField2"  class="form-control" placeholder="Your Email" type="email" tabindex="1" required>
                <input id="inputField2"  class="form-control" placeholder="Password" type="email" tabindex="1" required><br>
                <button class="btn btn-lg btn-primary">Join For Free</button>
                </form>
            </div>
            <div id="rightHeader" class="col-lg-7 text-center">
                <ul>
                    <li>text.</li>
                </ul>
            </div>
        </div>
    </div>
</div>

这和你要找的一样吗?

希望这会有所帮助。

【讨论】:

【参考方案3】:

我使用 line-height 属性,然后在 child 元素上重置

#rightHeader 
  height: 300px;
  width: 250px;
  line-height: 300px; /* same as div height */
  display: inline-block;
  background: #999;
  text-align: center;


#rightHeader ul 
  padding: 1px;
  display: inline-block;
  line-height: normal; /* reset it here */
<div id="rightHeader" class="col-lg-7 text-center">
  <ul>
    <li>text.</li>
  </ul>
</div>

【讨论】:

以上是关于如何在引导程序中垂直对齐 div 的内容? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用引导程序在div(下+左)下对齐标题?

如何在网格布局中垂直对齐 div? [复制]

如何在引导程序中使用垂直对齐

固定位置 div 中的垂直对齐

垂直对齐引导行中的跨度

div内图像的垂直中间对齐? [复制]