質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

1回答

686閲覧

z-indexとpositionについて

namahamn

総合スコア16

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2020/02/06 00:15

編集2020/02/06 03:27

以下のハンバーガーメニューで、ボタンをクリックすると黒背景が広がり、ボタンが背景よりも上に来るようになっています。
これは.hamburger{z-index:1;}によるものですが、css27行目のabsolute指定を消去すると適用されず、ボタンは黒背景の後ろに来てしまいます。なぜこのようなことが起こるのでしょうか。
https://codepen.io/gtrtretyrey/pen/QWbWEaa

HTML

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 8 <link rel="stylesheet" href="style.css"> 9 <title>Hamburger Menu Overlay</title> 10</head> 11<body> 12 <div class="menu-wrap"> 13 <input type="checkbox" class="toggler"> 14 <div class="hamburger"><div></div></div> 15 <div class="menu"> 16 <div> 17 <div> 18 19 </div> 20 </div> 21 </div> 22 </div> 23</body> 24</html>

CSS

1:root { 2 --primary-color: rgba(13, 110, 139, 0.75); 3 --secondary-color: rgba(229, 148, 0 , 0.9); 4 --overlay-color: rgba(24, 39, 51 , 0.85); 5 --menu-speed: 0.75s; 6} 7 8/* ハンバーガー */ 9.menu-wrap{ 10 position: fixed; 11 top:0; 12 left:0; 13} 14 15.toggler{ 16 position: absolute; 17 top:0; 18 left:0; 19 width:60px; 20 height:60px; 21 z-index: 2; 22 opacity: 0; 23 cursor: pointer; 24} 25 26.hamburger{ 27 position: absolute; 28 top: 0; 29 left: 0; 30 display: flex; 31 align-items: center; 32 background: rgba(13, 110, 139, 0.75); 33 padding: 1rem; 34 z-index:1; 35 width: 60px; 36 height:60px; 37} 38 39.hamburger > div{ 40 position: relative; 41 background: white; 42 height:2px; 43 width:100%; 44 transition: all 0.4s; 45} 46 47.hamburger > div::before, 48.hamburger > div::after{ 49 content: ''; 50 position: absolute; 51 top:-10px; 52 height: 2px; 53 background: inherit; 54 width:100% 55} 56 57.hamburger > div::after{ 58 top:10px; 59} 60 61.toggler:checked ~.hamburger > div{ 62 transform: rotate(135deg); 63} 64 65.toggler:checked ~.hamburger > div::before, 66.toggler:checked ~.hamburger > div::after{ 67 top:0; 68 transform: rotate(90deg); 69} 70 71.toggler:checked:hover ~.hamburger > div{ 72 transform: rotate(225deg); 73} 74 75 76 77/* showmenu */ 78.toggler:checked~.menu>div{ 79 transform: scale(1); 80 transition: 1s; 81} 82 83.toggler:checked~.menu>div>div{ 84 opacity: 1; 85 transition: all 0.3s 0.5s; 86} 87 88.menu{ 89 position: fixed; 90 top: 0; 91 left: 0; 92 width: 100%; 93 height: 100%; 94 display: flex; 95 align-items: center; 96 justify-content: center; 97} 98 99.menu>div{ 100 background-color: var(--overlay-color); 101 border-radius: 50%; 102 width:200vw; 103 height:200vw; 104 105 display: flex; 106 flex: none; 107 align-items: center; 108 justify-content: center; 109 110 transform: scale(0); 111} 112 113.menu>div>div{ 114 opacity: 0; 115 display: flex; 116}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2020/02/06 00:37

ソースコードは、URLではなく、テキストで質問本文に入れてください。 その際は、 ```言語名 ここにソースコード ``` といった形式で、コードブロックにしてください。 質問文は修正できます。
guest

回答1

0

ベストアンサー

z-indexを有効にするには positionプロパティをstatic以外に設定する必要があります。

z-indexとは|コーディングのプロが作るCSS辞典

CSSでz-indexが効かない時の4つの原因とその対応方法 | コリス

投稿2020/02/06 00:43

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問