Хотя вы, вероятно, не хотите настраивать свой код для работы в старых браузерах, которые не поддерживают margin: 0 auto;
, но, поскольку вы спросили:
Поддержка началась только с IE6. Если вы хотите поддерживать более ранние браузеры, вы можете добавить text-align: center;
к родительскому элементу. Это работает, потому что старые браузеры неправильно применяют text-align
также к блочным элементам. При этом оставьте margin: 0 auto;
для современных браузеров. Если вы хотите, чтобы text-align: center
работало и в современном браузере, вы также можете установить display: inline-block;
- тогда margin: 0 auto;
вам не понадобится.
Итак, если это ваш HTML:
<div id="outer">
<div id="inner"></div>
</div>
у вас есть следующие варианты:
Опция 1
#outer {
background: pink;
width: 100%;
text-align: center; /* for very old browsers */
}
#inner {
background: green;
display: inline-block;
width: 50px;
height: 50px;
margin: 0 auto; /* for >99% of browsers */
}
Вариант 2
#outer {
background: pink;
width: 100%;
text-align: center;
height: 50px; /* height of child - necessary for IE8 and IE9,
otherwise the height is slightly larger than that of the child */
}
#inner {
background: green;
display: inline-block; /* necessary for modern browsers, IE8+ */
width: 50px;
height: 50px;
}
Но, как я уже сказал, прежде чем поддерживать такие древние браузеры, вы можете подумать, стоит ли это дополнительных усилий, или лучше просто отказаться от их поддержки.
person
Alexander Jank
schedule
08.03.2017
caniuse
, вы можете предположить, что он поддерживается всем. Кроме разве что IE6, потому что винт IE6... - person Niet the Dark Absol   schedule 09.04.2016