営業ナシでWeb制作案件が舞い込んでくる”新世代”戦略 ▶︎

シンプルなナビゲーションバーデザインまとめ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前後の回転角度を調整

 

『絶対にリモートワーク!』という方におすすめの求人サイト

クラウドテック
Web制作案件の数
(5.0)
案件の単価
(4.0)
使いやすさ
(5.0)
案件獲得効率
(5.0)
初心者向け
(5.0)
オススメ度
(5.0)
総合評価
(5.0)
この講座のポイント

対象
Webデザイナー・エンジニア・グラフィックデザイナー・PM・マーケター・ライター

 

公式サイト
クラウドテック公式ページ

特徴

  • クラウドソーシング企業大手のクラウドワークスが運営する求人サイト
  • 実務未経験者でもOK
  • 登録社数14万社
  • フリーランス・個人事業主向け案件がケタ違いに多い
  • 報酬額や勤務地・職種など希望が通りやすい
  • Web制作・コーディングの高単価案件が多い
  • リモートワーク案件数は業界トップクラス
  • 最短3日で案件を獲得できる

 

現役Webデザイナーの筆者イチオシの求人サイト!フリーランス向けWeb制作案件なら確実に業界トップクラス。営業かけずに案件に困らなくなる一番の近道です。

ふたご

 

無料で登録してみる >>

 

 

まとめ

HTMLとCSSを使うと今回紹介したようなことも簡単にできてしまうんです。

 

『CSSアニメーションやエフェクトだけではなくWebサイトをゼロから作って稼いでいきたい』

『3ヶ月くらいで最低でも月10万円は稼ぎたい』

『営業とかやったことないけどWeb制作だけで稼いでいきたい』

 

こんな方のためにWeb制作で月80万超稼ぐ筆者が自身の経験を踏まえて【失敗しない】Webデザイナー(Web制作)独学ロードマップを執筆しました。

 

少額の投資で3ヶ月後には月10〜30万稼げるよう設計してあります。
(学習教材やAdobeなど最低限のコストはかかります)

 

ロードマップの構成
  1. Web制作に特化した『確実に身に付く』学習方法
  2. Web制作会社が喰いつく理想的なポートフォリオの作成手順
  3. 返信率10%以上!Web制作会社へのメール営業

 

有料公開も考えましたが「Webデザイナー(Web制作)はまだまだ稼げることを証明したい!」という思いが強く、期間限定で無料公開をすることにしました。

 

2021年半ばまでは無料公開する予定ではありますが前倒しすることもあり得ますのでご興味ある方はお早めにどうぞ!