#html #css
#HTML #css
Вопрос:
У меня есть несколько маркированных точек внутри div, и я хочу, чтобы маркированные точки были выровнены по вертикали. Я также хочу, чтобы div находился в центре страницы. Однако я не хочу вручную определять ширину div, потому что я заранее не знаю размер каждой маркированной точки. Как я могу центрировать div без предварительного определения ширины?
Код, который у меня есть на данный момент, является:
<div style='text-align:left;width:100px;margin:0 auto'>
<ul>
<li>Alpha</li>
<li>Beta</li>
<li>Gamma</li>
</ul>
</div>
А JSFiddle можно найти по адресу http://jsfiddle.net/7R2qJ
(Обратите внимание, что в этом коде ширина div определяется вручную, чего я хочу избежать).
Ответ №1:
Добавьте text-align: center
к родительскому элементу и text-align: left
к div. Я считаю, что это помогает в некоторых версиях IE. Затем добавьте display: inline-block
и в div.
<div>
<ul>
<li>Alpha</li>
<li>Beta</li>
<li>Gamma</li>
</ul>
</div>
—
body
{
text-align: center;
}
div
{
background: yellow;
text-align: left;
margin: 0 auto;
display: inline-block;
}
Комментарии:
1. Это не дает div ширину; он просто охватывает всю ширину своего родительского элемента: jsfiddle.net/7R2qJ/6
Ответ №2:
Один из способов — использовать display: table;
в сочетании с margin: 0 auto;
Ответ №3:
используйте display:inline-block;
свойство, чтобы перенести ширину div в его содержимое
css
body
{
text-align: center;
}
.list
{
background: yellow;
text-align: left;
margin: 0 auto;
display:inline-block;
}
разметка
<div class="list">
<ul>
<li>Alpha</li>
<li>Beta</li>
<li>Gamma</li>
</ul>
</div>