0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CSSだけでハンバーガーメニュー

Last updated at Posted at 2020-06-07

本記事ではCSSだけでハンバーガーメニューを実装します。

##前提条件
・javascriptは書かない
・id属性は使用しない。
・SCSSで書く

とりあえず完成品

See the Pen oNbXdyR by HoRnet2641XX (@hornet2641xx) on CodePen.

##解説とポイント(自分が最初わからなかったところ)

###解説
・CSSだけで行う場合はinputcheckedで制御する

・アイコンも書いているけど、まぁスクリプト書くならどっかからアイコン持ってきてもいいのかなとは思う

・メニューの展開時は画面全体を暗くするようにoverlayを作る

##ポイント

###紐付けについて。

idを使用した実装方法。
inputタグにid属性を指定して、labelタグに同じ値を設定することで、inputlabelを紐づける方法。

一例

index.html
  <input type="checkbox" id="drawer__box">
  <label for="drawer__box" class="drawer__icon">
    <span class="icon__parts"></span>
  </label>

ここでid属性を使ってしまうと、メリットよりデメリットが多くなってしまいます。。
もちろんid属性を指定するメリットはたくさんあります(DOMの要素速度の取得速度の向上や、視認性の高さなど)が、
classでできるならその方がいいですよね。

上のコードをidではなく、classにする場合は以下のようにして紐づけることができます。

  <label class="drawer__icon">
    <input class="drawer__toggle" type="checkbox" >
    <span class="drawer__icon__parts"></span>
  </label>

変更点はinputタグをlabelタグで囲んであげるだけです。
classとidが散乱していないので上のコードより見やすいかなと個人的には思います。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?