HTML,CSSだけで作れるナビゲーションバーのアニメーションないかな?という方向けに完全オリジナルのナビゲーションバーアニメーションを作ってみました
ふたご
今回はシンプルなナビゲーションバーデザインまとめ10選【CSSアニメーション】をご紹介。transformプロパティ(transform:scale×rotate)やfilterプロパティを使っています。HTML, CSSだけ。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのデザイン・コードはすべて完全オリジナルなのでコピペ大歓迎です。
まずは動きを確認してみてください(これがコピペOKなのかと驚くはず)
※突然ですが超オトクな『無料プレゼント』のお知らせです・・
今から3日以内に『転職実績No. 1のプログラミングスクール DMM WEBCAMP』へ無料カウンセリング申込&参加された方のみ限定でもれなく【Amazonギフト券1,000円分】をGETできるキャンペーン
完全オンラインレッスンで個別メンター付き。1月中なら期間限定で5万円のキャッシュバックも
無料カウンセリング ▶︎
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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .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
- flexboxでナビゲーションバーを横並び配置する
- justify-content: centerで横幅中央に配置する指定
- marginでナビゲーションメニュー同士の間隔を指定
- transitionでアニメーション速度を指定
- .nav-item:hoverでhover前後の回転角度を調整
『カテゴリー別に紹介』Udemy講座(プログラミング)をご紹介