[パーツ]メニュー 丸いハンバーガーメニューからメニューが出る

CSS HTML
 
 

丸いハンバーガーメニューからメニューが出る

丸いハンバーガーメニューからメニューが出るものです。面積がないときなどに。

メニューが出た後、メニュー名以外をクリックしたときもメニューが閉じるようになっています。

browser:  ✔︎ ✔︎ ✔︎ 
ニャン易度 
<div class="cp_navi07">
  <input type="checkbox" id="cp_navimenuid">
  <label class="menu07" for="cp_navimenuid">
    <div class="menubar">
      <span class="bar"></span>
      <span class="bar"></span>
      <span class="bar"></span>
    </div>
    <ul>
      <li><a id="home" href="#">Home</a></li>
      <li><a id="about" href="#">About</a></li>
      <li><a id="contact" href="#">Contact</a></li>
    </ul>
  </label>
  <!-- メニューが開いているときに背景に表示される透明なオーバーレイ -->
  <label class="background_overlay" for="cp_navimenuid"></label>
</div>
.cp_navi07 .menu07 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  margin: 0 auto;
  cursor: pointer;
  transition: all 0.5s ease-in-out;
  border-radius: 50%;
  background-color: #1b2538;
}
.cp_navi07 .menu07 div.menubar {
  width: 30px;
  height: 30px;
}
.cp_navi07 .menu07 div.menubar .bar {
  display: block;
  width: 100%;
  height: 5px;
  margin-top: 3px;
  margin-bottom: 5px;
  border-radius: 2px;
  background-color: #ffffff;
}
.cp_navi07 .menu07 ul {
  position: relative;
  display: none;
  margin: 0;
  padding: 0;
  list-style-type: none;
  text-align: center;
  opacity: 0;
  z-index: 2;
  transition: all 0.5s ease;
}
.cp_navi07 .menu07 ul li {
  display: flex;
}
.cp_navi07 .menu07 ul li a {
  display: flex;
  align-items: center;
  height: 50px;
  padding: 0 0.5em;
  color: #1b2538;
  text-decoration: none;
  transition: all 0.3s ease-in;
}
.cp_navi07 .menu07 ul li a:hover {
  color: #ffffff;
  background: #1b2538;
}
/* クリックした時の動き */
.cp_navi07 #cp_navimenuid {
  display: none;
}
.cp_navi07 #cp_navimenuid:checked ~ .menu07 {
  width: 100%;
  height: 60px;
  border: 3px solid #1b2538;
  border-radius: 5px;
  background-color: transparent;
}
.cp_navi07 #cp_navimenuid:checked ~ .menu07 > ul {
  display: flex;
  opacity: 1;
}
.cp_navi07 #cp_navimenuid:checked ~ .menu07 > .menubar {
  display: none;
}
.menu07 li::before {display: none;}
/* 新しく背景のdivを追加して、チェックが入っている時のみ表示 */
.cp_navi07 #cp_navimenuid:checked ~ .background_overlay {
  display: flex;
}
.background_overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0);
  z-index: 0;
}

copypet.jp

CSS3などで新たに追加された要素・装飾方法など、日々コードを書いていないと忘れてしまったり、ささっとプロトタイプを作る時などちょっとしたことに時間をかけている暇はない。そんな時に「あ〜、あれストックしときゃよかったなぁ」って困った自分用のストックブログです。カスタマイズなどがしやすいよう、昨今のweb制作に取り入れられる一般的なコードを中心に掲載しています。

More Info

こんな記事はいかがですか?