我来自世界各地,并且一直在寻找谷歌关于做多个包装来垂直对齐内容的资源 - 但它似乎真的很难看。
HTML5现在有更简单的方法吗?是否有某种实现使用类似HBox / VBox的心态?我看到有非ie浏览器的例子 - 是否有合规方式?
如果他们心智正常的人现在怎么做HTML呢?这太乱了!
////编辑
我终于想出了如何在屏幕上垂直对齐整个框,我如何确定如何垂直居中列表项。
我尝试了两种方法来对齐这个html:
<nav>
<ul>
<li><a href="#!/home">Home</a></li>
<li><a href="#!/link1">Link #1</a></li>
</ul>
</nav>
一个使用display:inline,另一个使用float:left(在容器内)。当使用内联时,似乎列表项忽略height:css,并且当使用float:时,li中的链接不垂直对齐。我是否需要将div放在li中以使它们垂直居中?
答案 0 :(得分:11)
为什么不尝试将display: box
与box-align:center
一起使用,这是CSS3,因此并非每个浏览器都支持它(仅限Chrome,FireFox和Safari)
答案 1 :(得分:4)
您可以使用display:inline-block为LI设置行高属性等于LI的高度。执行此操作时,文本将位于行的中间,该行与LI的高度相同,文本将垂直位于中间。
答案 2 :(得分:1)
HTML5实际上与元素布局没有任何关系,例如垂直对齐内容。和以前一样,标记由CSS设置。
CSS与HTML5完全不同,所以没有,没有任何改变。
如果您在实施特定布局时遇到问题,请提出具体问题,我们可以提供帮助。
答案 3 :(得分:1)
你可以设置一个外部元素来显示:table和要显示的内部元素:table-cell。然后,在table-cell元素上,设置vertical-align:middle;它的所有内容都将垂直居中。
它不适用于IE7及更早版本,但嘿,谁在乎?