为什么在CSS3中没有任何一次性的垂直居中方式?

时间:2012-09-25 00:07:13

标签: css css3 vertical-alignment

阅读此"In The Woods" blog post后,我想知道:

为什么CSS3中没有任何一次性垂直居中方式?

为什么我不能使用CSS属性<div>制作vertical-align: center并将我的内容垂直居中?

3 个答案:

答案 0 :(得分:3)

如果您制作容器vertical-align: center

,则可以使用display: table-cell

browser support

答案 1 :(得分:2)

该名称可能略有混淆。 css声明vertical-align不是用于将其内容中的某些内容垂直居中(除非我们讨论的是表格单元格)。相反,它用于设置声明规则的元素的垂直对齐方式。

如果您使用inline-block让某些元素彼此相邻并且行为正常,则此功能非常有用。

答案 2 :(得分:0)

您可能希望支持Flexible Box Layout Module

  

<强>抽象

     

该规范描述了针对用户优化的CSS盒模型   界面设计。在flex布局模型中,flex的子节点   容器可以在任何方向布置,并且可以“弯曲”它们   尺寸,要么增长以填充未使用的空间,要么缩小以避免   溢出父母。水平和垂直对齐的   孩子们很容易被操纵。嵌套这些盒子(水平   内部垂直或垂直内部水平)可用于构建   两个方面的布局。

请注意this from the proposed spec

  

Flex容器为其创建一个新的flex格式化上下文   内容。这与建立块格式化上下文相同,   除了使用flex布局而不是块布局:浮点数不会   侵入弹性容器,弹性容器的边缘   不会因其内容的边缘而崩溃。 Flex容器形成一个   包含块的内容与块容器完全相同。

     

Flex容器不是块容器,因此在假设块布局的情况下设计的某些属性不适用于   flex布局的上下文。特别是:

     
      
  • Multicol模块中的所有'列 - *'属性对Flex容器没有影响。
  •   
  • '浮动''清除'对灵活项目无效。
  •   
  • 'vertical-align'对Flex项目没有影响。
  •   

请记住,此规范仍处于早期状态,并且已经替换了之前的版本(通过此版本)。因此,它试图解决一些看起来应该“解决”的常见布局问题,显然它仍然很早就开始称之为可行。

但是我们可以希望,不是吗?