Div центрируется на том, что вы упомянули - немного хитро , позвольте мне объяснить.
Прежде всего, ваш div абсолют и растянут со всех сторон.Что приводит к этому.
.Absolute-Center {
margin: auto;
position: absolute;
background:red;
top: 0; left: 0; bottom: 0; right: 0;
}
<div class="container">
<div class="row">
<div class="Absolute-Center is-Responsive" style="text-align: center">
</div>
</div>
</div>
Обратите внимание, это охватывает всю страницу .Поскольку позиция равна 0 со всех 4 сторон
Теперь просто добавьте ограничение max-width
и max-height
.Это означает, что это то же самое, что и приведенный выше фрагмент, но вы просто изменили ширину
.Absolute-Center {
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
}
.Absolute-Center.is-Responsive {
min-width: 200px;
max-width: 200px;
}
<div class="container">
<div class="row">
<div class="Absolute-Center is-Responsive" style="text-align: center">
hello
</div>
</div>
</div>
Теперь, что случилось?Ширина является ограничением.Далее вам нужно было указать высоту.Обратите внимание, что верхняя, нижняя и другие области приводят к тому, что этот короткий элемент находится в центре, а стрела - в центре
.Absolute-Center {
margin: auto;
position: absolute;
top: 0; left: 0; bottom: 0; right: 0;
}
.Absolute-Center.is-Responsive {
width: 50%;
height: 50%;
min-width: 200px;
max-width: 400px;
padding: 40px;
}
<div class="container">
<div class="row">
<div class="Absolute-Center is-Responsive" style="text-align: center">
hello
</div>
</div>
</div>
Элемент div в основном растянут.
Каков наилучший способ центрирования с использованием абсолютного позиционирования?
Использование этого
.Absolute-Center {
margin: auto;
position: absolute;
top: 40%; left: 0; bottom: 0; right: 0;
margin-left:auto; margin-right: auto;
}
<div class="container">
<div class="row">
<div class="Absolute-Center is-Responsive" style="text-align: center">
hello
</div>
</div>
</div>
Что лучше в этом?Вы можете отредактировать верхнее, левое и правое значения в соответствии со своими предпочтениями, чтобы получить отзывчивые представления.То, что я сделал, это просто установил значение top в процентах.Это останется неизменным для многих представлений о масштабированииВы можете откалибровать виды и добиться наилучшего для вас.
Что такое вертикальная единица высоты?
Эта единица vh
добавляется к дисплеям в масштабе согласновысота, а не ширина экрана.Попробуйте этот пример и обратите внимание, как изменяется текст, когда вы редактируете высоту браузера.Используя vw
для ширины.
.Absolute-Center {
margin: auto;
position: absolute;
top: 40vh; left: 0; bottom: 0; right: 0;
margin-left:auto; margin-right: auto;
}
<div class="container">
<div class="row">
<div class="Absolute-Center is-Responsive" style="text-align: center">
hello
</div>
</div>
</div>
Бонусный метод центрирования: Flexbox
Flexbox - лучший метод , когда речь идет об центрировании элементов в CSS.Просто убедитесь, что ваш родительский div и дочерний div находятся на нужной высоте и используйте align-items: center
.Absolute-Center {
display: flex;
align-items: center;
height: 100%;
}
html,
body {
height: 100%;
}
<div class="Absolute-Center is-Responsive">hello</div>
Чтобы центрировать по горизонтали, просто добавьте justify-content: center
.Absolute-Center {
display: flex;
align-items: center;
justify-content:center;
height: 100%;
}
html,
body {
height: 100%;
}
<div class="Absolute-Center is-Responsive">hello</div>