▲TOPへ戻る

CSSだけでつくる、アニメーションをするナビゲーションメニューバー  #1

今回はこのようなメニューバーを作ってみましょう。







HTMLのコードを見る
HTML
 <div class="nav">
    <ul>
        <li><a href="">Home</a></li>
        <li><a href="">Blog</a></li>
        <li><a href="">About</a></li>
        <li><a href="">Contact</a></li>
        <li><a href="">Privacy</a></li>
        <li><a href="">Menus</a></li>
    </ul>
  </div>
CSSのコードを見る
CSS
  .nav{
      position: relative;
      width: 900px;
      margin: 20px auto;
  }
  .nav ul{
      margin: 0;
      padding: 0;
      list-style: none;
      text-align: center;
  }
  .nav ul li{
      position: relative;
      float: left;
      transform: skewX(-20deg);
      background: rgb(191, 185, 246);
      padding: 20px 0;
      box-shadow: -2px 0 20px -6px rgba(0, 0, 0, 0.5);
      z-index: 1;
      width: 120px;
      margin-left: -100px;
      transition: all 0.5s;
  }
  .nav ul li a{
      display: block;
      padding: 20px;
      font-size: 16px;
      transform: skewX(20deg);
      text-decoration: none;
      color: #fff;
      font-weight: bold;
      text-transform: uppercase;
  }
  .nav ul li:first-child{
      margin-left: 0;
  }
  .nav ul li:hover{
      background: #6d63c8;
      transform: translate(2px,-10px) skewX(-20deg);
      z-index: 10;
      width: 160px;
  }
  .nav ul li:hover a{
      font-size: 1.5em;
  }
  .nav ul li:last-child{
      background:rgb(73, 2, 155);
  }
  .nav ul li:last-child a{
      color: #fff;
  } 
  .nav ul:hover li{
      margin-left: 0;
  }
Point 1
transform: skewX()で傾きを付ける
Point 2
margin-left: -100px;で左へ移動し、重ねる
margin-left: -100px;
Point 3
一番左のli には、li:first-child { margin-left: 0; }を指定

これを指定しないと、全体が左へ100px移動しちゃいます。

Point 4
transform:translateで、マウスをのせた時に、ちょっと浮かす。

メニューバーの大きさや背景色等、いろいろアレンジしてみてください。

profile

パソコン好きなガオ

コロナ禍によるステイホームを機にプログラミングを学ぶ。パソコンに関してはプロではないが、ちょっと詳しい程度。

パソコン

javascript

カメラ

ブログ