У меня есть тег div
с width
800 пикселей. Когда ширина браузера превышает 800 пикселей, он не должен растягивать div
, но должен приводить его к середине страницы.
Ответ 1
<body>
<div style="width:800px; margin:0 auto;">
centered content
</div>
</body>
Ответ 2
position: absolute
а затем top:50%
и left:50%
размещает верхний край в вертикальном центре экрана, а левый край - в горизонтальном центре, затем добавляя margin-top
к отрицательному значению высоты элемента div -100 сдвигает его выше на 100 и аналогично для margin-left
. Это получает div
точно в центре страницы.
#outPopUp {
position: absolute;
width: 300px;
height: 200px;
z-index: 15;
top: 50%;
left: 50%;
margin: -100px 0 0 -150px;
background: red;
}
<div id="outPopUp"></div>
Ответ 3
Современное решение Flexbox - путь в 2015 году и обратно. justify-content: center
используется для родительского элемента, чтобы выровнять контент по его центру.
HTML
<div class="container">
<div class="center">Center</div>
</div>
CSS
.container {
display: flex;
justify-content: center;
}
.center {
width: 800px;
}
Выход
.container {
display: flex;
justify-content: center;
}
.center {
width: 800px;
background: #5F85DB;
color: #fff;
font-weight: bold;
font-family: Tahoma;
}
<div class="container">
<div class="center">Centered div with left aligned text.</div>
</div>
Ответ 4
-
Вы имеете в виду, что хотите центрировать его вертикально или горизонтально? Вы сказали, что указали
height
до 800 пикселей и хотите, чтобы div не растягивался, когдаwidth
была больше... -
Для центрирования по горизонтали вы можете использовать
margin: auto;
атрибут в CSS. Также вам нужно убедиться, что элементыbody
иhtml
не имеют полей или отступов:
html, body { margin: 0; padding: 0; }
#centeredDiv { margin-right: auto; margin-left: auto; width: 800px; }
Ответ 5
Чтобы он также работал правильно в Internet Explorer 6, вы должны сделать это следующим образом:
HTML
<body>
<div class="centered">
centered content
</div>
</body>
CSS
body {
margin: 0;
padding: 0;
text-align: center; /* !!! */
}
.centered {
margin: 0 auto;
text-align: left;
width: 800px;
}
Ответ 6
<div></div>
div {
display: table;
margin-right: auto;
margin-left: auto;
}
Ответ 7
Вы также можете использовать его следующим образом:
<div style="width: 60%; margin: 0px auto;">
Your contents here...
</div>
Ответ 8
Просто используйте center
тег сразу после тега body
и заканчивайте center
тег непосредственно перед концом body
:
<body>
<center>
... Your code here ...
</center>
</body>
Это работало для меня со всеми браузерами, которые я пробовал.
Ответ 9
Это может быть легко достигнуто с помощью гибкого контейнера.
.container{
width: 100%;
display: flex;
height: 100vh;
justify-content: center;
}
.item{
align-self: center;
}
Ответ 10
Добавьте этот класс в div, который вы хотите центрировать (который должен иметь заданную ширину):
.marginAutoLR
{
margin-right:auto;
margin-left:auto;
}
Или добавьте материал поля в свой класс div, например:
.divClass
{
width:300px;
margin-right:auto;
margin-left:auto;
}
Ответ 11
Используйте свойство CSS flex: http://jsfiddle.net/cytr/j7SEa/6/show/
body { /* Centered */
display: box;
flex-align: center;
flex-pack: center;
}
Ответ 12
Div по центру вертикально и горизонтально внутри родительского элемента без фиксирования размера содержимого
Здесь на этой странице есть хороший обзор с несколькими решениями, слишком много кода, чтобы поделиться здесь, но он показывает, что возможно...
Лично мне больше всего нравится это решение с известным трюком transform translate -50%. Это хорошо работает как для фиксированной (% или px), так и для неопределенной высоты и ширины вашего элемента.
Код так же прост, как:
HTML:
<div class="center"><div>
CSS:
.center {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); /* for IE 9 */
-webkit-transform: translate(-50%, -50%); /* for Safari */
/* optional size in px or %: */
width: 100px;
height: 100px;
}
Вот скрипка, которая показывает, что это работает
Ответ 13
Некоторые другие ранее существующие настройки из более старого кода, которые будут препятствовать центрированию страницы D & L:
- Другие классы скрыты во внешних ссылках таблицы стилей.
- Другие классы встроены во что-то вроде
img
(например, для старых внешних элементов управления форматом печати CSS). - Код легенды с идентификаторами и/или CLASSES будет конфликтовать с именованным классом
div
.
Ответ 14
Центрирование без указания ширины div:
body {
text-align: center;
}
body * {
text-align: initial;
}
body div {
display: inline-block;
}
Это что-то вроде тега <center>
, кроме:
- все прямые дочерние элементы (например.
<h1>
)<center>
) также будут расположены в центре - Элемент inline-block может иметь разный размер (comapred до
display:block
) в соответствии с настройками браузера
Ответ 15
Если у вас есть обычный контент, а не только одна строка текста, единственная возможная причина, которую я знаю, - это рассчитать маржу.
Вот пример:
HTML
<div id="supercontainer">
<div id="middlecontainer">
<div class="common" id="first">first</div>
<div id="container">
<div class="common" id="second">second</div>
<div class="common" id="third">third</div>
</div>
</div>
</div>
CSS
body {
margin: 0;
padding: 0;
}
.common {
border: 1px solid black;
}
#supercontainer {
width: 1200px;
background: aqua;
float: left;
}
#middlecontainer {
float: left;
width: 104px;
margin: 0 549px;
}
#container {
float: left;
}
#first {
background: red;
height: 102px;
width: 50px;
float: left;
}
#second {
background: green;
height: 50px;
width: 50px;
}
#third {
background: yellow;
height: 50px;
width: 50px;
}
Итак, #supercontainer
- это ваша "whole page"
width
составляет 1200px
.
#middlecontainer
является div
с содержанием вашего сайта; это width
102px
. Если width
контента известна, вам нужно разделить размер страницы на 2 и вычесть половину width
контента из результата: 1200/2 - (102/2) = 549;
Да, я также вижу, что это грубый провал CSS.
Ответ 16
body, html {
display: table;
height: 100%;
width: 100%;
}
.container {
display: table-cell;
vertical-align: middle;
}
.container .box {
width: 100px;
height: 100px;
background: red;
margin: 0 auto;
}
"ширина: 100%" для тега "тело" только для примера. В реальном проекте вы можете удалить это свойство.
Ответ 17
Используйте justify-content
и align-items
для горизонтального и вертикального выравнивания div
https://developer.mozilla.org/de/docs/Web/CSS/justify-content https://developer.mozilla.org/en/docs/Web/CSS/align-items
html,
body,
.container {
height: 100%;
width: 100%;
}
.container {
display: flex;
align-items: center;
justify-content: center;
}
.mydiv {
width: 80px;
}
<div class="container">
<div class="mydiv">h & v aligned</div>
</div>
Ответ 18
Это также работает в Internet Explorer, но автоматические поля - нет.
.centered {
position: absolute;
display: inline-block;
left: -500px;
width: 1000px;
margin: 0 50%;
}
Ответ 19
Простой http://jsfiddle.net/8pd4qx5r/
html {
display: table;
height: 100%;
width: 100%;
}
body {
display: table-cell;
vertical-align: middle;
}
.content {
margin: 0 auto;
width: 260px;
text-align: center;
background: pink;
}
Ответ 20
Используйте приведенный ниже код для центрирования поля div:
.box-content{
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
position: absolute;
width: 800px;
height: 100px;
background-color: green;
}
<div class="box-content">
</div>
Ответ 21
<parent>
<child>
</child>
</parent>
parent {
position: relative
}
child {
position: absolute,
left: 50%,
transform: translateX(-50%)
}
Ответ 22
<body>
<div style=" display: table; margin: 250 auto;">
In center
</div>
</body>
Если вы хотите изменить вертикальное положение, измените значение 250, и вы можете упорядочить контент в соответствии с вашими потребностями. Нет необходимости указывать ширину и другие параметры.
Ответ 23
.middle {
margin:0 auto;
text-align: center;
}
/* это приносит div в центр */
Ответ 24
Если содержание вашего центра глубоко внутри других элементов, то только маржа может спасти вас. Ничего больше. Я сталкиваюсь с этим всегда, когда не использую фреймворк, такой как Bootstrap.
Ответ 25
В моем случае размер экрана телефона неизвестен, и вот что я сделал.
HTML
<div class="loadingImg"></div>
CSS
.loadingImg{
position: fixed;
top: 0px;
left: 0px;
z-index: 9999999;
border: 0;
background: url('../images/loading.gif') no-repeat center;
background-size: 50px 50px;
display: block;
margin: 0 auto;
-webkit-border-radius: 50px;
border-radius: 50px;
}
JavaScript (прежде чем вам нужно показать этот DIV)
$(".loadingImg").css("height",$(document).height());
$(".loadingImg").css("width",$(document).width());
$(".loadingImg").show();
Ответ 26
Почему-то ни один из предыдущих ответов не сработал для меня. Это то, что работает для меня, и это работает во всех браузерах:
.center {
text-align: center;
height: 100%;
/* Safari, Opera, and Chrome */
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
/* Firefox */
display: -moz-box;
-moz-box-pack: center;
-moz-box-align: center;
/* Internet Explorer 10 */
display: -ms-flexbox;
-ms-flex-pack: center;
-ms-flex-align: center;
}
Ответ 27
- Получите ширину экрана.
- Тогда оставьте маржу в размере 25%
- Сделать маржу справа 25%
Таким образом, содержимое вашего контейнера будет находиться посередине.
Пример: предположим, что ширина контейнера = 800 пикселей;
<div class='container' width='device-width' id='updatedContent'>
<p id='myContent'></p>
<contents></contents>
<contents></contents>
</div>
if ($("#myContent").parent === $("updatedContent"))
{
$("#myContent").css({
'left': '-(device-width/0.25)px';
'right': '-(device-width/0.225)px';
});
}