我已经看到,虽然开发网站,垂直居中容器(固定高度)在一个随机高度的容器内总是作为web开发人员(至少,我)的噩梦,而当涉及到水平居中一个容器在一个随机宽度的容器内,margin:0px auto;
倾向于在标准模型中提供一个简单的方法。
当事情可以这么简单时,为什么CSS在解决高度固定的容器内的固定高度的容器时,不能用margin:auto 0px;
?有没有特别的理由这样做?提前感谢您的见解。为什么边界的自动属性不能垂直工作而水平工作?
回答
这实际上比你想象的更噩梦,只是不使用利润率。 vertical-align
真的是你应该依靠流体高度垂直居中。我扔一起快速演示来证明我的观点:
HTML:
<span></span><div id="any-height"></div>
CSS:
* { margin: 0; padding: 0; }
html, body {
height: 100%;
text-align: center; }
span {
height: 100%;
vertical-align: middle;
display: inline-block; }
#any-height {
background: #000;
text-align: left;
width: 200px;
height: 200px;
vertical-align: middle;
display: inline-block; }
好的,你确实有一点。垂直对齐不一定是噩梦,IE7是IE6。 – ptriek 2011-12-23 21:27:33
我已经使用了垂直对齐方式,但在大多数地方不能提供令人满意的解决方案。原因:vertical-align的问题在于它与所有浏览器都不兼容。有关参考[检查此链接](http://reference.sitepoint.com/css/vertical-align#compatibilitysection)。 所以没有分家伙。 :( – ikartik90 2011-12-24 05:37:07
[有些工具可以验证其他浏览器是否有效](https://browserlab.adobe.com/en-us/index.html),因此您不必依赖图表随心所欲地将事物标记为越野车......我确信这适用于所有主流浏览器,并且如果您正在寻找扩展兼容性,您应该检查[本文](http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block /) – Wex 2011-12-24 18:42:40
你的问题的正确答案是margin: auto 0
没有按工作原理与margin: 0 auto
工作原理相同,因为width: auto
工作方式不一样height: auto
ES。
垂直自动边距对已知高度的绝对定位元素起作用。
.parent {
position: relative;
}
.child {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
width: 150px;
height: 150px;
margin: auto;
}
CSS ----------------
.aligncenter{
display: -webkit-box;
display: -moz-box;
display: box;
-webkit-box-align: center;
-moz-box-align: center;
flex-align: center;
-webkit-box-pack: center;
-moz-box-pack: center;
flex-pack: center;
}
HTML ------------------ -------
<div class="aligncenter">
---your content appear at the middle of the parent div----
</div>
note ----------- 这个css类几乎可以与所有的浏览器一起工作
- 1. 垂直和水平滚动不工作
- 2. 边界属性为什么不能在列表项上工作?
- 3. CSS图片悬停工作水平而不是垂直方向
- 4. div水平滚动不工作自动
- 5. 为什么我的水平工具条垂直叠放?
- 6. 绝对中心(垂直和水平)“响应”它不工作
- 7. 中心div内容垂直和水平不工作
- 8. 为什么'浮动'属性不能在IE7上工作?
- 9. 水平的形式,而不是垂直
- 10. 垂直aligment不能正常工作
- 11. 垂直中心不能正常工作
- 12. 为什么滚动条不能在这个水平DIV上工作?
- 13. 垂直居中不工作
- 14. SplitPane垂直不工作
- 15. 为什么RichTextBox上的MaxLength属性不能在WPF中工作?
- 16. Swift - UITableView滚动减速不工作,除非弹跳启用水平和垂直
- 17. UIScrollView的水平滚动不工作
- 18. 垂直滚动条不工作
- 19. Hammertime垂直滚动不工作
- 20. 垂直滚动条不工作
- 21. jquery tablesorter垂直滚动不工作
- 22. Pygame边界不工作
- 23. 边界半径不工作
- 24. presentModalViewController水平而不是垂直
- 25. 显示水平效果的垂直滚动视图。为什么?
- 26. datatable scrollX水平不工作
- 27. 限制水平/垂直轴的边界椭圆
- 28. 浮动属性不能正常工作
- 29. 为什么Subclipse只能在一些Ecliplse工作区中工作,而不能在其他工作区中工作?
- 30. 水平滚动视图不工作
http://phrogz.net/css/vertical-align/index.html提供了一些见解:“HTML布局传统上不用于指定垂直行为。就其性质而言,它在横向上缩放,并且内容根据可用宽度流到适当的高度。传统上,横向尺寸和布局很容易; “ – justis 2011-12-23 20:12:11
是真的,但我仍然有一种直觉,它可能会有很大的提升,它只是感觉很尴尬,你不能使用vertical-align:middle,除非容器显示为table-单元格 – ptriek 2011-12-23 20:19:26
@jblasco:我已经阅读过您提到过的页面,但似乎我没有找到满意的答案。原因:HTML在传统上只是用来显示/分享在CERN设计的简单文本数据,但那么当你将传统的HTML和HTML5进行比较时,就会发生如此多的变化,那么现在是不是适应什么促进访问便利性的时候了? – ikartik90 2011-12-23 20:19:40