我的模板中有三行主div。我有一个标题,一个内容包装器和一个页脚。标题对齐顶部和页脚对底部。我在两者之间有一个内容包装div。我基本上想要在两个div中垂直居中内容包装。内容div始终是动态高度,因此行高度方法对我无效。什么是我用这个最好的方法?如何垂直对齐页眉和页脚div之间的内容div?
回答
垂直居中内容
在不使用JavaScript,有方式有限数量的垂直居中动态内容:
在这样的情况下,现代的方法是使用CSS的表,这等同于HTML表格。但是,如果需要支持IE7或更早版本,请改用HTML表格。在这种特殊情况下,Flexbox并不适合,IE9及更早版本不支持。 CSS网格目前仅支持IE10,并且该标准尚未最终确定。
CSS表的基本用法是:
HTML
<div class="table">
<div class="row">
<div class="cell">Content</div>
</div>
</div>
CSS
.table {display: table;}
.row {display: table-row;}
.cell {display: table-cell;}
演示 (在测试:IE8/9/10, FF,Chrome,Safari,Opera)
HTML表格和CSS表之间进行选择
对于表格数据(例如,数据的网格),有利于使用HTML表格 。在这种情况下,它在语义上更加正确,并且可以更容易地理解源代码的性质,这可能有助于访问和搜索引擎优化(以及代码的可维护性)。
对于非表格数据(例如,总体布置),有利于使用CSS表格(如果浮纱和CSS定位是不够的)。它在语义上更加正确,因为HTML表格的使用创造了对表格数据的期望,并且屏幕阅读器和搜索引擎可能不那么令人困惑。布局的具体用途包括垂直居中的内容和等高的列。
CSS表格优于HTML表格的一个特殊优点是支持visibility:collapse
,它允许折叠行或列(某些不能用HTML表格执行的操作)。如果表格数据需要该特定功能,请使用CSS表格。
您可以使用下面的代码做到这一点: -
<div> using display:table-cell; vertical-align:middle
所有做的是它重新排列我的内容div到左侧,它取消了它的宽度。 – ShoeLace1291 2013-03-04 06:11:32
这是不是一个完整的CSS代码,你必须添加其他的CSS代码,上述代码只有证明中心的内容不是其他任何其他 – Chase1986 2013-03-04 06:19:02
@ ShoeLace1291:'display:table-cell'是现代浏览器的首选方法。 @ Chase1986:+1用于在正确的方向上操控事物。 – 2013-03-04 17:21:48
保存自己的一些痛苦和刚刚突破出来为三个单独的容器。
#header {
width:1000px; /* or what ever width you need */
margin-left:auto;
margin-right:auto;
clear:both;
overflow:hidden;
}
#content{
width:1000px; /* or what ever width you need */
margin-left:auto;
margin-right:auto;
clear:both;
overflow:hidden;
}
#footer{
width:1000px; /* or what ever width you need */
margin-left:auto;
margin-right:auto;
clear:both;
overflow:hidden;
}
<div id="header">test</div>
<div id="content">test</div>
<div id="footer">test</div>
溢出隐藏属性将使一个div自动展开,显示被添加到它的任何额外的内容..使它更像一个表格单元格。
下面是一个例子enter link description here
这涉及水平居中,但问题是垂直居中页面上的主要内容。 – 2013-03-04 17:24:57
垂直居中div的内容可能会变得棘手,因为没有简单的方法来完成它,就像使用表格单元格一样。你可以将你的内容包装在一个子div中,然后使用margin-top。 http://jsfiddle.net/FKnpM/2/ – 2013-03-04 17:48:38
从历史上来说,是的,但在现代浏览器中,CSS表格布局提供了一种简单的方法来使用div来完成此操作。请参阅我发布的附加信息。 – 2013-03-04 17:52:08
- 1. 我怎么垂直对齐的div左,中,页眉和页脚DIV之间的权利
- 2. 引导3容器垂直对齐中心,页眉和页脚
- 3. 垂直对齐div的内容
- 4. 垂直对齐div中的内容
- 5. 内容之间的页眉/页脚
- 6. 集装箱垂直居中对齐考虑页眉和页脚
- 7. CSS - 垂直对齐DIV内容
- 8. 中间垂直对齐内嵌块div
- 9. 粘性页眉和页脚垂直排列内容到中心
- 10. 如何垂直和水平对齐另一个div内的div?
- 11. 垂直对齐DIV
- 12. 垂直对齐div
- 13. 页眉和页脚之间的100%高度div
- 14. 页眉和页脚之间的伸展div
- 15. 页眉和页脚之间的div大小问题
- 16. 右对齐按钮/页眉和页脚divs中的内容
- 17. 将网站内容对齐到css中的页眉和页脚
- 18. 如何在页眉,页脚固定时对齐内容
- 19. DIV在页眉和页脚之间浮动
- 20. 将内容垂直对齐到div的中间?
- 21. 垂直对齐一个绝对定位的div内含div div
- 22. 如何垂直对齐的div页上Flexbox的
- 23. 如何垂直对齐另一个div内的div?
- 24. 如何垂直对齐另一个div内的两个div?
- 25. 如何垂直顶部对齐div内的div?
- 26. 页眉和页脚之间100%的内容
- 27. 对齐垂直中间的一个div
- 28. 垂直对齐div内的img元素
- 29. div内图像的垂直对齐
- 30. 内容div没有填充页面,页脚没有对齐
相关问题:http://stackoverflow.com/questions/5004665 – 2013-03-04 17:28:48