«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему «margin: auto» не работает с абсолютно позиционированными элементами?

Почему «margin: auto» не работает с абсолютно позиционированными элементами?

Опубликовано 16 ноября 2024 г.
Просматривать:159

Why Doesn\'t \

Что такое автоматическая проблема с абсолютным позиционированием поля

При применении «position: Absolute» к элементу с «margin-left: auto» и « Margin-Right: Auto», вы можете заметить, что поля, похоже, не имеют никакого эффекта. Такое поведение отличается от «положения: относительное», где поля работают должным образом. Чтобы понять это несоответствие, давайте углубимся в основную механику.

Когда элемент позиционируется абсолютно, он удаляется из обычного потока документа. Это означает, что он больше не взаимодействует с соседними элементами и его размер определяется исключительно его явными размерами или размером его контейнера. В результате, если ширина элемента не задана явно, браузер вычисляет значение «auto», которое в большинстве случаев равно 0.

В этом сценарии применяется «margin-left: auto» и «margin-right: auto» пытается создать пространство вокруг элемента, устанавливая левое и правое поля равными половине ширины элемента. Однако, поскольку вычисленная ширина элемента равна 0, вычисленное значение поля также становится 0. Вот почему поля, кажется, не имеют никакого эффекта.

Напротив, когда используется «позиция: относительная», элемент остается в обычном потоке документа. Его размер определяется его содержимым и пространством, которое он занимает в потоке. Когда применяются «margin-left: auto» и «margin-right: auto», поля рассчитываются на основе фактической ширины элемента, которая в данном случае не равна нулю. Таким образом, поля применяются правильно, в результате чего элемент центрируется внутри содержащего его элемента.

Чтобы центрировать абсолютно позиционированный элемент, вы можете указать его ширину и высоту, а затем использовать «position: Absolute; left: 50». %; трансформировать: транслировать(-50%, -50%);" чтобы центрировать его внутри контейнера. Этот метод точно позиционирует элемент в нужном месте, даже если для полей установлено значение «авто».

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3