Можно ли указать код в положение по центральной точке элемента, а не по верхней левой точке? Если мой родитель элемент имеетПозиция по центральной точке, а не левая верхняя точка
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
позиционирует элемент b y его правая сторона, так что все содержимое будет слева от точки его родительской ширины 50%
.
И, то же самое относится и к vertical-anchor
, вы его получите.
Итак, что-то вроде этого можно использовать только с CSS (без скриптов)?
Спасибо!
@ kaboom1 пользователь остерегается: конкретные команды браузера должны быть тщательно протестированы. Хорошей новостью является то, что обычно есть эквивалентные свойства для каждого браузера. –
Хорошее решение, но по крайней мере в настоящее время существует * * определенное количество совместимости с кросс-браузером; просто добавьте ключи '-ms-transform' и' transform' с тем же значением. – Raphael