абсолютное позиционирование в CSS не будет работать с маржи-левой:авто маржи-право: авто
скажем, у вас есть следующий css применяется к тегу div
.divtagABS {
position: absolute;
margin-left: auto;
margin-right:auto;
}
в левое поле и правое поле не вступило в силу
но если у вас есть родственник, он работает нормально то есть
,divtagREL {
position: relative;
margin-left: auto;
margin-right:auto;
}
почему это? я просто хочу центрировать элемент
может кто-нибудь объяснить, почему установка полей на авто в абсолютном положении не работает?
7 ответов:
EDIT: этот ответ используется для утверждения, что невозможно центрировать абсолютно позиционированный элемент с
margin: auto;
, но это просто не соответствует действительности. Поскольку это самый проголосованный и принятый ответ, я предположил, что просто изменю его, чтобы быть правильным.когда вы применяете следующий CSS к элементу
position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto;
а затем дать элементу фиксированную ширину и высоту, например 200px или 40%, элемент будет центр себя.
здесь Скрипка это демонстрирует эффект.
Я использовал этот трюк, чтобы центрировать абсолютно позиционированный элемент. Хотя, вы должны знать ширину элемента.
.divtagABS { width: 100px; position: absolute; left: 50%; margin-left: -50px; }
в основном, вы используете left: 50%, а затем возвращаете половину его ширины с отрицательным запасом.
если абсолютная элемент имеет ширину,вы можете использовать код ниже
.divtagABS{ width:300px; positon:absolute; left:0; right:0; margin:0 auto; }
работает JSFiddle ниже. При использовании абсолютной позиции,
margin: 0 auto
не будет работать, но можно сделать вот так (так):left: 50%; transform: translateX(-50%);
обновление: работающего JSFiddle
У меня уже была эта же проблема, и у меня есть решение для написания контейнера (.divtagABS-контейнер, в вашем случае) абсолютно позиционируется, а затем относительно позиционирует содержимое внутри него (.divtagABS, в вашем случае).
готово! В левое поле и правое поле для вашего авто .теперь будут работать дивтагабс.
если элемент является позицией абсолютно, то он не является относительным или по отношению к любому объекту, включая саму страницу. Так что
margin: auto;
Не могу решить, где середина.его ждут, чтобы сказать явно, используя
left
иtop
где позиционировать себя.вы все еще можете центрировать его программно, используя javascript или что-то подобное.