【问题标题】:how to center align a box to the window size?如何将框居中对齐到窗口大小?
【发布时间】:2013-07-04 14:42:38
【问题描述】:

我想居中对齐另一个 div(imp) 内的 div(cen)

这是代码示例

.imp
{
        width:100%;
        height:100%;
        background-color: black;
        position: fixed;
        top:0;
        bottom:0;
}

上面是主 div 现在应该居中的 div 在下面给出

    .cen
   {
    margin-left:auto;
    margin-right:auto;
    padding:5px;
    width:auto;
    height:auto;

   }

这是我的问题,如何将.cen 对齐到浏览器的中间? 有margin-left:auto;边距右:自动;带到中心,但不是从顶部。我已经将顶部设置为 50%,左侧为 50%,然后我也无法将其居中对齐,因为 .cen 内的内容更大,所以它出现在窗口的右下角。任何线索或想法?

【问题讨论】:

标签: html css responsive-design


【解决方案1】:

由于这需要响应式,所以只能使用Javascript来实现。

var cen = document.getElementsByClassName('cen')[0];
var imp = document.getElementsByClassName('imp')[0];
cen.style.marginTop = ((imp.offsetHeight / 2) - (cen.offsetHeight / 2)) + "px";

resizeload 事件中调用上述函数。

Working Fiddle

另外,检查 Calc CSS3 属性。如果您知道子元素的高度,将会很有帮助。

【讨论】:

  • 出于我的好奇,它工作正常,但是当您重新调整浏览器窗口的大小时,它会再次失去对齐,直到您刷新页面。那么在浏览器重新调整大小的情况下是否可以获得相同的对齐方式?
  • @Mr_Green 谢谢问题解决了但是不能单独使用css吗?
  • @raj,刚刚添加了一个 CSS 解决方案。
【解决方案2】:

这是一个 CSS 解决方案。您需要将您的 .imp div 包装在另一个具有 100% 窗口高度的 div 中。

这里的主要关键是display 的值table 用于外部div .imptable-cell 用于内部div .cen 以及vertical-align: middle

CSS

* {
  margin: 0;
}
html, body, #wrapper {
  height: 100%;
}
#wrapper { 
    background-color: red; 
    display: table; 
    width: 100%; }
.imp {
  min-height: 100%;
  background-color: blue;
  display: table-cell;
  vertical-align: middle;
}
.cen { 
    background-color: orange; 
}

HTML

<div id="wrapper">
    <div class="imp">
        <div class="cen">.cen</div>
    </div>
</div>

【讨论】:

  • 感谢您的努力。工作正常。我赞成。你能给我解释一下,以便我可以在需要时理解和使用该技术:)
  • 我们正在做的是告诉divs 表现得像一张桌子。实际的表格单元格,&lt;td&gt; 默认情况下将项目垂直对齐到中间以及继承高度(这种情况有多种方式)。在这种情况下,由于min-height(可能不是浏览器窗口的完整高度),您的.imp div 将是其父元素的 100% 高度,并且将表现得像&lt;table&gt;,因为我们将其设置为display table 的财产。然后你的.cen div 被告知表现得像&lt;td&gt;。为了让display: table-cell 工作,它的父元素需要display: table
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 2016-08-18
  • 2017-12-23
  • 2023-03-20
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多