阅读此"In The Woods" blog post后,我想知道:
为什么CSS3中没有任何一次性垂直居中方式?
为什么我不能使用CSS属性<div>
制作vertical-align: center
并将我的内容垂直居中?
答案 0 :(得分:3)
答案 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项目没有影响。
请记住,此规范仍处于早期状态,并且已经替换了之前的版本(通过此版本)。因此,它试图解决一些看起来应该“解决”的常见布局问题,显然它仍然很早就开始称之为可行。
但是我们可以希望,不是吗?