是否可以告诉代码通过元素的中心点而不是左上角来定位?如果我的父元素有
width: 500px;
我的子元素有
/*some width, for this example let's say it's 200px*/
position: absolute;
left: 50%;
有人会假设基于50%
定位,子元素将位于父元素的中间,150px
在每一侧留下可用空间。然而,事实并非如此,因为它是孩子的左上角,它是50%
父母的宽度,因此整个孩子的宽度200px
从那里向右走250px
,在左边留下自由空间,只50px
在右边.
所以,我的问题是,如何实现中心定位?
我找到了这个解决方案:
position: absolute;
width: 200px;
left: 50%;
margin-left: -100px;
但我不喜欢它,因为您需要为每个元素的宽度手动编辑它——我想要一些可以全局使用的东西。
(例如,当我在 Adobe After Effects 中工作时,我可以为一个对象设置一个位置,然后设置该对象的特定锚点,该锚点将被放置到该位置。如果画布很1280px
宽,您可以将一个对象定位640px
到选择对象的中心作为您的锚点,然后整个对象将在1280px
宽画布内居中。)
我会在 CSS 中想象这样的事情:
position: absolute;
left: 50%;
horizontal-anchor: center;
同样,horizontal-anchor: right
将元素定位在其右侧,因此整个内容将位于其父级50%
宽度点的左侧。
而且,同样适用vertical-anchor
,你明白了。
那么,这样的事情是否可能仅使用 CSS(无脚本)?
谢谢!