Можно ли указывать код для размещения по центральной точке элемента, а не по верхней левой точке? Если у моего родительского элемента
width: 500px;
а мой дочерний элемент
/*some width, for this example let say it 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%
width.
И, то же самое относится и к vertical-anchor
, вы получите его.
Итак, что-то вроде этого возможно, используя только CSS (без скриптов)?
Спасибо!