У меня есть рабочий код здесь: http://jsfiddle.net/WVm5d/ (вам может потребоваться увеличить окно результатов, чтобы увидеть эффект выравнивания по центру)
Вопрос
Код работает нормально, но мне не нравится иметь display: table;
. Это единственный способ сделать центр выравнивания по классу wrap. Я думаю, что было бы лучше, если бы был способ использовать display: block;
или display: inline-block;
. Можно ли решить центр выравнивания по-другому?
Добавление фиксированного с к контейнеру не вариант для меня.
Я также вставлю сюда свой код, если в будущем ссылка JS Fiddle будет разорвана:
body {
background: #bbb;
}
.wrap {
background: #aaa;
margin: 0 auto;
display: table;
overflow: hidden;
}
.sidebar {
width: 200px;
float: left;
background: #eee;
}
.container {
margin: 0 auto;
background: #ddd;
display: block;
float: left;
padding: 5px;
}
.box {
background: #eee;
border: 1px solid #ccc;
padding: 10px;
margin: 5px;
float: left;
}
.box:nth-child(3n+1) {
clear: left;
}
<div class="wrap">
<div class="sidebar">
Sidebar
</div>
<div class="container">
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
</div>
<div class="sidebar">
Sidebar
</div>
</div>
Попробуй это. Я добавил
text-align: center
к телу иdisplay:inline-block
обернуть, а затем удалилdisplay: table
источник
white-space: nowrap;
на них тоже.body
центр текста? для меня это звучит как огромное излишествоЕсли у вас есть
<div>
сtext-align:center;
, то любой текст внутри него будет центрирован относительно ширины этого элемента контейнера.inline-block
элементы рассматриваются как текст для этой цели, поэтому они также будут центрированы.источник
Вы также можете сделать это с помощью позиционирования, установить родительский div в относительный и дочерний div в абсолютный.
источник
Вам не нужно использовать «display: table». Причина, по которой ваш запас: 0 попытка автоматического центрирования не работает, заключается в том, что вы не указали ширину.
Это будет работать просто отлично:
Вам не нужно указывать display: block, так как этот div будет блокировать по умолчанию. Вы также можете, вероятно, потерять переполнение: скрытый.
источник
Подобно ответу @ vijayscode, он будет центрировать горизонтальный элемент inline-block по горизонтали (но без необходимости изменять стили его родителя):
источник
Я только что изменил 2 параметра:
Live Demo
источник
Отличная статья, которую я нашел, для меня лучше всего было добавить% к размеру
источник
Просто используйте:
line-height:50px
Замените "50px" на ту же высоту, что и ваш div.
источник
line-height
.text-align: center;
. Регулировка высоты строки - это решение для вертикального центрирования, хотя и не очень надежное решение для встроенного блока.