为什么CSS3不支持垂直中心(直接)?

为什么CSS3不支持垂直中心(直接)?,css,Css,CSS中一个非常常见的问题是如何使元素垂直居中。既然CSS3能够实现如此多的特殊效果,为什么他们不在CSS3中包含垂直中心功能 我认为,即使是初学者也可以使用javascript创建一个以javascript为中心的函数,添加该函数并不困难。有这么多针对不同情况的黑客攻击,很明显,仅使用CSS就可以垂直居中。因此,可能还有其他原因使他们决定不将其作为标准属性?这是因为使用CSS执行布局-CSS主要是在x轴上排列项目,例如100%宽度按预期工作,而不是100%高度。这可能是由于可能发生的计算/逻辑

CSS中一个非常常见的问题是如何使元素垂直居中。既然CSS3能够实现如此多的特殊效果,为什么他们不在CSS3中包含垂直中心功能


我认为,即使是初学者也可以使用javascript创建一个以javascript为中心的函数,添加该函数并不困难。有这么多针对不同情况的黑客攻击,很明显,仅使用CSS就可以垂直居中。因此,可能还有其他原因使他们决定不将其作为标准属性?

这是因为使用CSS执行布局-CSS主要是在x轴上排列项目,例如100%宽度按预期工作,而不是100%高度。这可能是由于可能发生的计算/逻辑循环,因为宽度取决于高度,反之亦然,因此在计算时必须始终优先考虑一个轴

其他信息由:


x轴的问题与文本在图形中的自然流动有关 文件记住,Web最初是一系列页面,所以 HTML和CSS最初是围绕这一基本前提构建的- 它已经发展成为一个应用程序平台,但遗留下来的是 还在那里。Flexbox是CSS3垂直居中盒子的方法- 唯一的问题是跨浏览器支持,但因为问题是关于 CSS3无论如何,这是意料之中的

类似地,就指令对齐而言,水平对齐很容易,因为元素的宽度通常是隐式或显式表示的,就像块元素如何自动具有100%的隐式宽度,除非另有说明,从而允许沿水平轴轻松计算中心位置

但是,这不适用于垂直对齐的情况,因为垂直尺寸通常取决于内容的数量、长度和大小。在明确规定垂直高度的情况下,实际上可以很容易做到:

通过使用CSS flexbox方法 优点:符合标准且非常简单,感兴趣元素的维度不必固定 缺点:缺乏广泛的跨浏览器支持,但是 身体{ 保证金:0; 填充:0; } .盒子{ 背景色:eee; 显示器:flex; 对齐项目:居中; 证明内容:中心; 宽度:100%; 高度:100vh; } .box>.content{ 背景色:333; 颜色:eee; 填料:1米2米; } 我居中
这是因为使用CSS执行布局的方式—CSS主要是在x轴上排列项目,比如100%宽度按预期工作,而不是100%高度。这可能是由于可能发生的计算/逻辑循环,因为宽度取决于高度,反之亦然,因此在计算时必须始终优先考虑一个轴

其他信息由:


x轴的问题与文本在图形中的自然流动有关 文件记住,Web最初是一系列页面,所以 HTML和CSS最初是围绕这一基本前提构建的- 它已经发展成为一个应用程序平台,但遗留下来的是 还在那里。Flexbox是CSS3垂直居中盒子的方法- 唯一的问题是跨浏览器支持,但因为问题是关于 CSS3无论如何,这是意料之中的

类似地,就指令对齐而言,水平对齐很容易,因为元素的宽度通常是隐式或显式表示的,就像块元素如何自动具有100%的隐式宽度,除非另有说明,从而允许沿水平轴轻松计算中心位置

但是,这不适用于垂直对齐的情况,因为垂直尺寸通常取决于内容的数量、长度和大小。在明确规定垂直高度的情况下,实际上可以很容易做到:

通过使用CSS flexbox方法 优点:符合标准且非常简单,感兴趣元素的维度不必固定 缺点:缺乏广泛的跨浏览器支持,但是 身体{ 保证金:0; 填充:0; } .盒子{ 背景色:eee; 显示器:flex; 对齐项目:居中; 证明内容:中心; 宽度:100%; 高度:100vh; } .box>.content{ 背景色:333; 颜色:eee; 填料:1米2米; } 我居中
x轴与文档中文本的自然流动有关。请记住,Web最初是由一系列页面组成的,因此HTML和CSS最初是围绕这一基本前提构建的——它后来演变成了一个应用程序平台,但遗留问题仍然存在。Flexbox是CSS3垂直居中框的方式-唯一的问题是跨浏览器支持,但由于问题是关于CSS3的,这是意料之中的。@BoltClock感谢您补充额外信息:但您不同意它也与双轴计算问题的矛盾有关吗?
在Mac上的Safari中,iPhone可能仍然存在中心问题-这可能会有所帮助-webkit transform:translate-50%,-50%translateZ0px;。谢谢你详细的回答。第一部分已经足够回答这个问题了,但是后面的信息非常好,绝对值得一读。x轴的东西与文档中文本的自然流动有关。请记住,Web最初是由一系列页面组成的,因此HTML和CSS最初是围绕这一基本前提构建的——它后来演变成了一个应用程序平台,但遗留问题仍然存在。Flexbox是CSS3垂直居中框的方式-唯一的问题是跨浏览器支持,但由于问题是关于CSS3的,这是意料之中的。@BoltClock感谢您补充额外信息:但您不同意它也与双轴计算问题的矛盾有关吗?在Mac上的Safari中,iPhone可能仍然存在中心问题-这可能会有所帮助-webkit transform:translate-50%,-50%translateZ0px;。谢谢你详细的回答。第一部分已经足够回答这个问题了,但是后面的信息非常好,绝对值得一读。