グローバルナビなどのナビゲーションを中央揃えにする方法です。
ナビゲーションが固定幅なら両サイドのマージンをautoにすれば済みます。
ナビゲーションを中央揃えにするサンプル
CSSコード
*{
list-style: none;
margin:0;
padding:0;
}
nav{
background-color: yellow;
}
ul{
background-color: blue;
width:615px;
overflow:hidden;
margin:auto;
}
li{
margin-right: 5px;
background-color: red;
float:left;
width:150px;
text-align:center;
}
li:last-child{
margin-right: 0;
}
HTMLコード
<nav class="global">
<ul>
<li>AAAAAAAAAA</li>
<li>BBBBB</li>
<li>CCCCCCCC</li>
<li>DD</li>
</ul>
</nav>
けれども、計算が面倒だったり、幅を固定しない場合など困ったことになります。
positionを使用する方法
この方法は、ナビゲーション全体(ul)をpositionを使用してナビゲーションの親要素のleft:50%の位置に配置します。これではナビゲーション(ul)の左端が親要素の50%に位置します。そのため、更にナビゲーションの中の各liに対してleft:-50%とするとli要素群の中心が親要素のleft:50%の位置に来てくれます。
ナビゲーション関連の全ての要素にposition: relativeを指定することがポイントです。

positionを使用する方法のサンプル
CSSコード
*{
list-style: none;
margin:0;
padding:0;
}
nav{
background-color: yellow;
}
ul{
background-color: blue;
}
li{
margin-right: 5px;
background-color: red;
opacity: 0.8;
}
.global {
overflow: hidden;
position: relative;
}
.global ul {
float: left;
position: relative;
left: 50%;
}
.global ul li {
float: left;
position: relative;
left: -50%;
}
HTMLコード
<nav class="global">
<ul>
<li>AAAAAAAAAA</li>
<li>BBBBB</li>
<li>CCCCCCCC</li>
<li>DD</li>
</ul>
</nav>

コメントを投稿するにはログインしてください。