Flexboxでナビゲーション
Flexboxでナビゲーション
- 便宜上、複数のナビゲーションをnav要素で繰返し設定します
- class名は「共通名」と「個別名」を付けて、設定を分けて指定します
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <title>Global Menu</title> <style> /* ------------------------------------ reset ------------------------------------ */ * { margin: 0; padding: 0; box-sizing: border-box; } ul, li { list-style: none; } a { color: inherit; text-decoration: none; } /* ------------------------------------ nav ------------------------------------ */ /* ---------- 共通設定 ---------- */ .gnav { margin-top: 50px; } .gnav > ul { /* 子セレクタ指定 */ display: flex; justify-content: center; background-color: #fffbb9; } .gnav a { display: block; background-color: #b2edff; } /* ---------- 個別設定 ---------- */ /* 文字の右空きを作る */ .gnav1 a { margin-right: 40px; } /* 最後の右空きを削除する */ .gnav1 li:last-child a { margin-right: 0; } /* 文字の右左空きを作る */ .gnav2 a { margin: 0 20px; } /* 文字の左空きを削除する */ .gnav2 li:first-child a { margin-left: 0; } /* 文字の右空きを削除する */ .gnav2 li:last-child a { margin-right: 0; } /* 隣接セレクタで指定(liのclass名で指定) */ /* 最初に出てくる「.item-list」の隣から左空きを作る */ .item-list + .item-list { margin-left: 40px; } /* 文字の上下右左の余白を作る */ .gnav4 a { padding: 10px 20px; } </style> </head> <body> <nav class="gnav gnav1"> <ul> <li><a href="#">Home</a></li> <li><a href="#">Menu</a></li> <li><a href="#">Access</a></li> <li><a href="#">Recruit</a></li> </ul> </nav> <nav class="gnav gnav2"> <ul> <li><a href="#">Home</a></li> <li><a href="#">Menu</a></li> <li><a href="#">Access</a></li> <li><a href="#">Recruit</a></li> </ul> </nav> <nav class="gnav gnav3"> <ul> <li class="item-list"><a href="#">Home</a></li> <li class="item-list"><a href="#">Menu</a></li> <li class="item-list"><a href="#">Access</a></li> <li class="item-list"><a href="#">Recruit</a></li> </ul> </nav> <nav class="gnav gnav4"> <ul> <li><a href="#">Home</a></li> <li><a href="#">Menu</a></li> <li><a href="#">Access</a></li> <li><a href="#">Recruit</a></li> </ul> </nav> </body> </html>