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

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

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

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

HTML5

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

Q&A

解決済

1回答

489閲覧

どの画面幅に変えてもナビゲーションアイコンが右寄せ定位置になるようにしたい

maring

総合スコア41

CSS3

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

HTML5

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

0グッド

0クリップ

投稿2022/05/11 15:00

現状

SPサイトのナビゲーションアイコン(虫眼鏡・カート).p-keywordの箇所になるのですが、どうしても画面幅を狭めるとハンバーガーメニューに重なってしまいます。ご教授いただけないでしょうか。イメージ説明

やりたいこと

どのサイズに変更しても、ハンバーガーメニューに重ならないくらいにしたいです。
イメージ説明

試したこと

text-align:left→効かず
float:left→効かず
justify-content:flex-end→効かず
marginで余白を取る→最大幅を超えるので右側に余白ができてしまいます。

コード

html

1 <header class="l-header"> 2 <div class="l-header__container"> 3 <a href=""><img class="l-header__logo" src="./assets/images/icon1.png" alt="会社ロゴ" ></a> 4 <nav class="p-nav"> 5 <ul class="p-nav__menu"> 6 <li class="p-nav__list"> 7 <a class="p-nav__button" >MENS</a> 8 <ul class="p-nav__sub"> 9 <div class="p-nav__container"> 10 <li class="p-nav__big"><a href="">MENSTOP</a></li> 11 <li class="p-nav__big">BRAND</li> 12 <li><a href="">ブランドを選択する</a></li> 13 <li class="p-nav__big">CATEGORY</li> 14 </div> 15 <div class="p-nav__container"> 16 <li><a href="">トップス</a></li> 17 <li><a href="">アウター</a></li> 18 <li><a href="">パンツ</a></li> 19 </div> 20 <div class="p-nav__container"> 21 <li><a href="">オールインワン</a></li> 22 <li><a href="">スーツ</a></li> 23 <li><a href="">バッグ</a></li> 24 </div> 25 <div class="p-nav__container"> 26 <li><a href="">シューズ</a></li> 27 <li><a href="">小物</a></li> 28 <li><a href="">アクセサリー</a></li> 29 </div> 30 <div class="p-nav__container"> 31 <li><a href="">アンダーウェア</a></li> 32 <li><a href="">レッグウェア</a></li> 33 <li><a href="">帽子</a></li> 34 </div> 35 </ul> 36 </li> 37 <li class="p-nav__list"> 38 <a class="p-nav__button" id="p-nav__botton2">WOMENS</a> 39 <ul class="p-nav__sub"> 40 <div class="p-nav__container"> 41 <li class="p-nav__big"><a href="">WOMENSTOP</a></li> 42 <li class="p-nav__big">BRAND</li> 43 <li><a href="">ブランドを選択する</a></li> 44 <li class="p-nav__big">CATEGORY</li> 45 </div> 46 <div class="p-nav__container"> 47 <li><a href="">トップス</a></li> 48 <li><a href="">アウター</a></li> 49 <li><a href="">パンツ</a></li> 50 </div> 51 <div class="p-nav__container"> 52 <li><a href="">オールインワン</a></li> 53 <li><a href="">スーツ</a></li> 54 <li><a href="">バッグ</a></li> 55 </div> 56 <div class="p-nav__container"> 57 <li><a href="">シューズ</a></li> 58 <li><a href="">小物</a></li> 59 <li><a href="">アクセサリー</a></li> 60 </div> 61 <div class="p-nav__container"> 62 <li><a href="">アンダーウェア</a></li> 63 <li><a href="">レッグウェア</a></li> 64 <li><a href="">帽子</a></li> 65 </div> 66 </ul> 67 </li> 68 <li class="p-nav__list"> 69 <a href="" class="p-nav__button" id="p-nav__botton3">SHOP LIST</a> 70 </li> 71 </ul> 72 </nav> 73 <div class="p-keyword"> 74 <input class="p-keyword__search" type="search" placeholder="何かお探しですか"> 75 <ul class="p-keyword__container"> 76 <li class="p-keyword__list"> 77 <a href=""><img class="p-keyword__glasses" src="./assets/images/icon2.png" alt="虫眼鏡"></a> 78 </li> 79 <li class="p-keyword__list"> 80 <a href=""><img class="p-keyword__cart" src="./assets/images/icon3.png" alt="虫眼鏡"></a> 81 </li> 82 </ul> 83 </div> 84 <div class="p-hamburger"> 85 <span class="p-hamburger__bar"></span> 86 <span class="p-hamburger__bar"></span> 87 <span class="p-hamburger__bar"></span> 88 </div> 89 </div> 90 </header>

css

1@charset "UTF-8"; 2.l-header__container { 3 display: flex; 4 align-items: center; 5} 6 7.p-hero { 8 background-color: #000; 9 height: 580px; 10 color: #fff; 11} 12 13.p-hero__gender { 14 display: flex; 15 justify-content: space-around; 16 margin-top: 80px; 17} 18 19.p-hero__text2 { 20 color: #fff; 21 font-size: 30px; 22 font-weight:bold; 23} 24 25.p-hero__mtriangle { 26 width: 0; 27 height: 0; 28 border-left: 10px solid transparent; 29 border-right: 10px solid transparent; 30 border-top: 10px solid #fff; 31 margin-top: 14px; 32 margin-left: 27px; 33} 34 35.p-hero__wtriangle { 36 width: 0; 37 height: 0; 38 border-left: 10px solid transparent; 39 border-right: 10px solid transparent; 40 border-top: 10px solid #fff; 41 margin-top: 14px; 42 margin-left: 50px; 43} 44 45.p-hero__link { 46 text-decoration: none; 47} 48 49.p-footer__text { 50 color: #CCCCCC; 51 font-size: 0.1rem; 52} 53 54.p-footer__sns { 55 display: flex; 56} 57 58.p-section:last-child { 59 margin-top: 24px; 60} 61 62.p-footermenu { 63 display: flex; 64} 65 66.p-footermenu__text { 67 color: #000; 68 font-size: 0.7rem; 69} 70 71.p-copyright__text { 72 font-size: 0.7rem; 73 text-align: center; 74} 75 76@media screen and (max-width: 599px) { 77 /* SP style */ 78.p-hamburger { 79 position: absolute; 80 right: 10px; 81 height: 22px; 82 width: 28px; 83 z-index: 1; 84} 85 86.p-hamburger__bar { 87 position: absolute; 88 left: 0; 89 height: 2px; 90 width: 28px; 91 background-color: #000; 92 box-sizing: border-box; 93 transition: 0.7s ease; 94} 95 96.p-hamburger__bar:nth-of-type(1) { 97 bottom: 20px; 98} 99 100.p-hamburger__bar:nth-of-type(2) { 101 bottom: 10px; 102} 103 104.p-hamburger__bar:nth-of-type(3) { 105 bottom: 0px; 106} 107 108 /* 109 ハンバーガーメニューがクリックされたら 110 上の線を真ん中に移動させて45℃回転 111*/ 112.p-hamburger__bar:nth-of-type(1).open { 113 top: 10px; 114 transform: rotate(45deg); 115 background-color: #fff; 116} 117 118/* 119 ハンバーガーメニューがクリックされたら 120 真ん中の線は透明化して見えないようにする 121*/ 122.p-hamburger__bar:nth-of-type(2).open { 123 opacity: 0; 124 background-color: #fff; 125} 126 127/* 128 ハンバーガーメニューがクリックされたら 129 下の線は真ん中に移動させて-45℃回転 130*/ 131.p-hamburger__bar:nth-of-type(3).open { 132 top: 10px; 133 transform: rotate(-45deg); 134 background-color: #fff; 135} 136 137.p-login { 138 display: none; 139} 140 141.p-nav { 142 display: none; 143} 144 145.p-keyword { 146 margin: 0 auto; 147} 148 149.p-keyword__list:nth-of-type(1) { 150 margin-right: 20px; 151} 152 153.p-keyword__search { 154 display: none; 155} 156 157.p-keyword__count { 158 display: none; 159} 160 161.l-header__logo { 162 width: 140px; 163 object-fit: cover; 164} 165 166.p-keyword__glasses { 167 width: 28px; 168 object-fit: cover; 169} 170 171.p-keyword__cart { 172 width: 28px; 173 object-fit: cover; 174} 175 176.p-keyword__container { 177 display: flex; 178} 179 180.p-hero { 181 text-align: center; 182} 183 184.p-hero__container { 185 padding-top: 100px; 186} 187 188.p-hero__text { 189 font-size: 28px; 190 font-weight: bold; 191} 192 193.p-hero__text:not(:last-child) { 194 margin-bottom: 5px; 195} 196 197.p-hero__text2 { 198 font-size: 15px; 199} 200 201.p-hero__mtriangle { 202 position: relative; 203 right: 12px; 204} 205 206.p-hero__wtriangle { 207 position: relative; 208 right: 22px; 209} 210 211.p-hero { 212 height: 370px; 213} 214 215.p-main__category { 216 display: flex; 217 flex-wrap: wrap; 218} 219 220.p-main__list { 221 width: 50%; 222} 223 224.p-main__img { 225 width: 100%; 226 height: 250px; 227 object-fit: cover; 228} 229 230.p-footer__text { 231 text-align: center; 232 margin-bottom: 24px; 233} 234 235.p-footer__sns { 236 justify-content: center; 237} 238 239.p-footer__list:not(:last-child) { 240 margin-right: 32px; 241} 242 243.p-footer__img { 244 width: 24px; 245 height: 24px; 246} 247 248.p-footermenu { 249 flex-wrap: wrap; 250 justify-content: center; 251 height: 100px; 252 margin-top: 24px; 253} 254 255.p-footermenu__list:not(:last-child):after { 256 margin-right: 4px; 257 content: "|"; 258 font-size: 2px; 259} 260 261.p-footermenu__exchange { 262 font-size: 0.7rem; 263 text-align: center; 264 color: #CCCCCC; 265 text-decoration: underline #CCCCCC; 266} 267 268.p-copyright { 269 margin-top: 24px; 270 padding-bottom: 24px; 271} 272 273.p-hamburger__fade { 274 pointer-events: none; 275 opacity: 0; 276 transition: opacity .3s linear; 277 position: fixed; 278 top: 0px; 279 background-color: #000; 280 width: 100%; 281 height: 100%; 282 z-index: 1; 283} 284 285.p-hamburger__fade.open { 286 pointer-events: auto; 287 opacity: 1; 288} 289 290.p-hamburger__container1 > a { 291 color: #fff; 292 font-size: 18px; 293} 294 295.p-hamburger__container1 > a > li { 296 margin-bottom: 24px; 297} 298 299.p-hamburger__container1 { 300 padding-top: 40px; 301} 302 303.p-hamburger__container2 > a:not(:first-child) { 304 color: #fff; 305} 306 307.p-hamburger__container3 > a:not(:first-child) { 308 color: #fff; 309} 310 311.p-hamburger__container4 > a:not(:first-child) { 312 color: #fff; 313} 314 315.p-hamburger__container { 316 margin-top: 48px; 317} 318 319.p-hamburger__container1 { 320 border-bottom: 1px solid #fff; 321} 322 323.p-hamburger__fade { 324 padding-left: 32px; 325} 326 327.p-hamburger__fade > div > a { 328 text-decoration: none; 329} 330 331.p-hamburger__container2 > a:first-child { 332 color: #F00; 333 font-size: 22px; 334} 335 336.p-hamburger__container2 { 337 margin-top: 24px; 338} 339 340.p-hamburger__container2 > a > li { 341 margin-top: 24px; 342} 343 344.p-hamburger__container3 > a:first-child { 345 color: #F00; 346 font-size: 22px; 347} 348 349.p-hamburger__container3 > a > li { 350 margin-top: 24px; 351} 352 353.p-hamburger__container4 > a:first-child { 354 color: #F00; 355 font-size: 22px; 356} 357 358.p-hamburger__container4 > a > li { 359 margin-top: 24px; 360} 361 362}

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

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

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

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

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

guest

回答1

0

ベストアンサー

どのサイズに変更しても、ハンバーガーメニューに重ならないくらいにしたいです。

画像幅があるので、それ以下のスクリーンサイズではどうしても右スクロールが発生すると思いますので、「どのサイズでも」というのは難しいでしょう。
とりあえず、以下のように変更するとどうでしょうか。

css

1 @media screen and (max-width: 599px) { 2 3 /* SP style */ 4 .p-hamburger { 5 /* position: absolute; */ 6 /* right: 10px; */ 7 height: 22px; 8 width: 28px; 9 z-index: 1; 10 position: relative; 11 margin-right: 10px; 12 } 13 14/* ... */ 15 16 .p-keyword__list:nth-of-type(1) { 17 /* margin-right: 20px; */ 18 margin-right: clamp(0px, (100vw - 234px) / 3, 20px); 19 }

投稿2022/05/12 01:29

Lhankor_Mhy

総合スコア36140

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

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

maring

2022/05/12 15:40

ありがとうございます。 relativeにすると重ならず、absoluteにすると重なる理由はなんでなんでしょうか? ここで動きを見てみたんですが、 https://developer.mozilla.org/ja/docs/Web/CSS/position relativeは他要素に影響を与えず、absoluteは他要素に影響を与える?感じですかね・・
Lhankor_Mhy

2022/05/13 00:34

逆かと思います。 絶対配置した要素はその他の要素から「その場にないもの」として扱われるので、その場にないものとして同じ場所を占めるため、重なります。 relativeは他要素に影響を与え、absoluteは他要素に影響を与えない、という感じです。
maring

2022/05/13 05:20

わかりやすい説明いただきありがとうございます。大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問