ナビゲーションの中央揃え

HTML&CSS

グローバルナビなどのナビゲーションを中央揃えにする方法です。
ナビゲーションが固定幅なら両サイドのマージンを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を指定することがポイントです。
nav_center

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>
タイトルとURLをコピーしました