CSS text-выравнивание не работает
у меня есть этот код css здесь
.navigation{
width:100%;
background-color:#7a7a7a;
font-size:18px;
}
.navigation ul {
list-style-type: none;
margin: 0;
}
.navigation li {
float: left;
}
.navigation ul a {
color: #ffffff;
display: block;
padding: 0 65px 0 0;
text-decoration: none;
}
то, что я пытаюсь сделать, - это центр моего класса навигация. Я пробовал использовать text-align:center;
и vertical-align:middle;
но ни один из них не работал.
и вот HTML код
<div class="navigation">
<ul>
<li><a href="http://surfthecurve.ca/">home</a></li>
<li><a href="http://surfthecurve.ca/?page_id=7">about</a></li>
<li><a href="http://surfthecurve.ca/?page_id=9">tutors</a></li>
<li><a href="http://surfthecurve.ca/?page_id=11">students</a></li>
<li><a href="http://surfthecurve.ca/?page_id=13">contact us</a></li>
</ul>
</div><!--navigation-->
когда я говорю, что он не работает, я имею в виду текст выравнивание по левому.
3 ответов
измените правило на свой <a>
элемент:
.navigation ul a {
color: #000;
display: block;
padding: 0 65px 0 0;
text-decoration: none;
}
to
.navigation ul a {
color: #000;
display: block;
padding: 0 65px 0 0;
text-decoration: none;
width:100%;
text-align:center;
}
просто добавьте два новых правила (width:100%;
и text-align:center;
). Вам нужно сделать якорь развернутым, чтобы занять всю ширину элемента списка, а затем выровнять его по центру текста.
вы должны сделать UL
внутри div
вести себя как блок. Попробуйте добавить
.navigation ul {
display: inline-block;
}
Я стараюсь избегать плавающих элементов, если это действительно нужно. Потому что вы плавали <li>
Они не в норме поток.
если добавить .navigation { text-align:center; }
, и .navigation li { float: left; }
to .navigation li { display: inline-block; }
тогда вся навигация будет центрирована.
одно предостережение к этому подходу заключается в том, что display: inline-block;
не поддерживается в IE6 и нуждается в обходном пути, чтобы заставить его работать в IE7.