シンプルなナビゲーションバーデザインまとめ10選【解説ありCSSアニメーション】

HTML,CSSだけで作れるナビゲーションバーのアニメーションないかな?という方向けに完全オリジナルのナビゲーションバーアニメーションを作ってみました

ふたご

今回はシンプルなナビゲーションバーデザインまとめ10選【CSSアニメーション】をご紹介。transformプロパティ(transform:scale×rotate)やfilterプロパティを使っています。HTML, CSSだけ。

コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。

こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。

まずは動きを確認してみてください(これがコピペOKなのかと驚くはず)

 

1. 色が変化するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
  /* アニメーション速度を指定 */
  transition: color 0.3s ease-out;
}
.nav-item a:hover {
  /* hover後に色を変化させる指定 */
  color: pink;
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item a:hoverでhover前後に色を変化させる指定

2. 文字が太く変化するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
  /* アニメーション速度を指定 */
  transition: 0.3s ease-out;
}
.nav-item a:hover {
  /* hover後の文字の太さを指定 */
  font-weight: bold;
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item a:hoverでhover前後に文字の太さを変化させる指定

 

3. 下線が現れるナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
  /* アニメーション速度を指定 */
  transition: 0.1s ease-out;
}
.nav-item a:hover {
  /* hover後に下線が現れる指定 */
  border-bottom: 2px solid #333333;
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item a:hoverでhover後に下線が現れる指定

4. ボーダーで囲われるナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
  /* アニメーション速度を指定 */
  transition: 0.1s ease-out;
}
.nav-item a:hover {
  /* hover後にメニューを囲うボーダーの指定 */
  border: 1px solid #333333;
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item a:hoverでhover後にメニューを囲うボーダーの指定

5. opacityで不透明度変化するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
  /* アニメーション速度を指定 */
  transition: 0.1s ease-out;
  /* 不透明度の指定 */
  opacity: .5;
}
.nav-item a:hover {
  /* 不透明度の指定 */
  opacity: 1
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item a:hoverでhover前後のopacity(不透明度)を指定

6. scaleで拡大するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
}
.nav-item {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の拡大調整 */
  transform: scale(1);
}
.nav-item:hover {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の拡大調整 */
  transform: scale(1.2);
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item:hoverでhover前後の拡大調整

7. scaleで縮小するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
}
.nav-item {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の縮小調整 */
  transform: scale(1);
}
.nav-item:hover {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の縮小調整 */
  transform: scale(.7);
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item:hoverでhover前後の縮小調整

8. rotateZで回転するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
}
.nav-item {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の回転角度の調整 */
  transform: rotate(0);
}
.nav-item:hover {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の回転角度の調整 */
  transform: rotate(360deg);
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item:hoverでhover前後の回転角度を調整

9. rotateXで回転するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
}
.nav-item {
  /* アニメーション速度を指定 */
  transition: 0.1s;
  /* hover前後の回転角度の調整 */
  transform: rotateX(0);
}
.nav-item:hover {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の回転角度の調整 */
  transform: rotateX(360deg);
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item:hoverでhover前後の回転角度を調整

10. rotateYで回転するナビゲーションバーデザイン

動きは下の画像のような感じになります

 

コードを見る
  <nav class="navbar">
    <ul class="nav">
      <li class="nav-item"><a href="#">Home</a></li>
      <li class="nav-item"><a href="#">About</a></li>
      <li class="nav-item"><a href="#">Work</a></li>
      <li class="nav-item"><a href="#">Careers</a></li>
      <li class="nav-item"><a href="#">Contact</a></li>
    </ul>
  </nav>
.navbar {
  height: 50px;
  padding: 0;
}
.navbar ul {
  /* flexboxでナビゲーションバーを横並び配置する */
  display: flex;
  /* 縦幅中央に配置する指定 */
  align-items: center;
  /* 横幅中央に配置する指定 */
  justify-content: center;
  width: 100%;
  /* リストスタイルを削除 */
  list-style: none;
}
.navbar ul li {
  /* ナビゲーションメニュー同士の間隔を指定 */
  margin-left: 5%;
  margin-right: 5%;
}
.nav-item a {
  padding: 5px;
  color: #000;
  font-size: 0.9rem;
  font-weight: 400;
  text-decoration: none;
}
.nav-item {
  /* アニメーション速度を指定 */
  transition: 0.1s;
  /* hover前後の回転角度の調整 */
  transform: rotateY(0);
}
.nav-item:hover {
  /* アニメーション速度を指定 */
  transition: 0.3s;
  /* hover前後の回転角度の調整 */
  transform: rotateY(360deg);
}
POINT
  1. flexboxでナビゲーションバーを横並び配置する
  2. justify-content: centerで横幅中央に配置する指定
  3. marginでナビゲーションメニュー同士の間隔を指定
  4. transitionでアニメーション速度を指定
  5. .nav-item:hoverでhover前後の回転角度を調整

【初心者向け】失敗しないプログラミングTIPS

そもそもWebデザインの基礎がわからない。。
そんなあなたには『Udemy』

ふたご


でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはProEngineer

ふたご

完全無料で一人前のエンジニアになれるプログラミングスクール【ProEngineer】
  1. プログラミング学習&サポートが無料!
  2. 誰もが知っている超優良企業への就職サポート付き!
  3. 学習言語:Java、PHP、HTML、CSSなど

 

   話だけ聞いてみる