【CSS】nav-barをflexboxを使って簡単に作る

どのサイトにも大体存在するnav-bar?ヘッダーバー?
ちゃんとした名称は知らないけどこんなやつありますよね。

サイトを作ったことあるひとなら一度はこのnav-barを作るの
めんどいなーとか思ったことあるかもしれません。

今回はこれをflexboxを使って楽に作っていきます。

くどい説明いらんからコードくれ

これをロゴやメニューの親要素に入れます。

display: flex;
justify-content: space-between;
align-items: center;

適用例

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>flexboxでnav-bar</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <header>
      <nav class="nav-bar">
        <img src="logo.png" alt="ロゴ" class="logo">
        <ul class="menu">
          <li><a href="#">メニュー1</a></li>
          <li><a href="#">メニュー2</a></li>
          <li><a href="#">メニュー3</a></li>
        </ul>
      </nav>
    </header>
  </body>
</html>

以下がstyle.css

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html, body {
    width: 100%;
}
header {
    width: 100%;
    height: 70px;
}
.nav-bar {
    width: 100%;
    height: 100%;
    padding: 5px 10%;
    background-color: #555;
    border-bottom: 2px solid #ccc;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.nav-bar .logo {
    height: 80%;
}
.nav-bar .menu li {
    display: inline-block;
    padding: 5px 20px;
    list-style: none;
    border-right: 1px solid #ccc;
}
.nav-bar .menu li:last-child {
    border: none;
}
.nav-bar .menu li a {
    color: #fff;
    text-decoration: none;
}

CSS

Posted by sasa