display: flex や display: inline-block;で横並びした時
横並び要素で、端の要素をposition: absolute;で配置した時。
浮かせた要素の下に入り込んで重なってしまってちょっと悩んだ。
いろいろ検証して解決できたのでその方法書いときます。
わかれば簡単なことでした。
こんな状態でした。
今回の場合は、重なってる要素の親要素にpaddingを設定。
これだけで解決しました。
実際に失敗してるコードと、成功したコードをサンプルで
書いときますので、良かったら参考にして下さい。
失敗してる時のコード
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<nav id="global-nav2" class="header-nav2"> <div class="container2 c-nav2"> <div class="nav-logo"> <img src="./imgs/navlogo.png" alt="ロゴ"> </div><!-- /.nav-logo --> <div class="nav-inner2"> <ul class="header-menu2"> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">HOME</p> <p class="header-list-bottom2">ホーム</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">LEADERS</p> <p class="header-list-bottom2">指導者紹介</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">BLOG</p> <p class="header-list-bottom2">ブログ</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">CLASSES</p> <p class="header-list-bottom2">クラス紹介</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">HISTORY</p> <p class="header-list-bottom2">道場の歴史</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">MEMBER'S</p> <p class="header-list-bottom2">会員様へ</p> </a> </li><!-- /.header-nav-list --> </ul> <div class="n-btn2"> <a href="#"> <img src="./imgs/mail.svg" alt="メール"> <p class="header-btn-button">お問い合わせ</p> </a> </div> </div> </div> </nav> |
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
.header-nav2 { width: 100%; background-color: rgba(132, 11, 126, 0.7); margin-top: 200px; } .c-nav2 { position: relative; max-width: 1400px; margin: auto; display: flex; justify-content: space-between; align-items: center; } .header-menu2 { letter-spacing: -0.4em; margin-right: 10px; } .header-nav-list2 { display: inline-block; letter-spacing: 0.4em; } .header-menu2 li a { display: block; color:rgb(255, 255, 255); padding: 20px 10px; text-align: center; } .header-list-top2 { font-size: 24px; } .header-list-bottom2 { font-size: 14px; } .n-btn2 a { position: absolute; display: block; width: 150px; height: 150px; border-radius: 50%; background-color: black; text-align: center; padding: 30px 0; bottom: 0; right: 0; } |
成功したコード
.c-nav2 にpadding-right: 150px; を追加しただけ
他の人が見ても、何のためのpaddingなのかコメントつけとくといいかもです。
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<nav id="global-nav2" class="header-nav2"> <div class="container2 c-nav2"> <div class="nav-logo"> <img src="./imgs/navlogo.png" alt="ロゴ"> </div><!-- /.nav-logo --> <div class="nav-inner2"> <ul class="header-menu2"> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">HOME</p> <p class="header-list-bottom2">ホーム</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">LEADERS</p> <p class="header-list-bottom2">指導者紹介</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">BLOG</p> <p class="header-list-bottom2">ブログ</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">CLASSES</p> <p class="header-list-bottom2">クラス紹介</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">HISTORY</p> <p class="header-list-bottom2">道場の歴史</p> </a> </li><!-- /.header-nav-list --> <li class="header-nav-list2"> <a href="#"> <p class="header-list-top2">MEMBER'S</p> <p class="header-list-bottom2">会員様へ</p> </a> </li><!-- /.header-nav-list --> </ul> <div class="n-btn2"> <a href="#"> <img src="./imgs/mail.svg" alt="メール"> <p class="header-btn-button">お問い合わせ</p> </a> </div> </div> </div> </nav> |
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
.header-nav2 { width: 100%; background-color: rgba(132, 11, 126, 0.7); margin-top: 200px; } .c-nav2 { position: relative; max-width: 1400px; margin: auto; display: flex; justify-content: space-between; align-items: center; padding-right: 150px; /* お問い合わせボタン下空白用 */ } .header-menu2 { letter-spacing: -0.4em; margin-right: 10px; } .header-nav-list2 { display: inline-block; letter-spacing: 0.4em; } .header-menu2 li a { display: block; color:rgb(255, 255, 255); padding: 20px 10px; text-align: center; } .header-list-top2 { font-size: 24px; } .header-list-bottom2 { font-size: 14px; } .n-btn2 a { position: absolute; display: block; width: 150px; height: 150px; border-radius: 50%; background-color: black; text-align: center; padding: 30px 0; bottom: 0; right: 0; } |
よかったら参考にしてもて下さい。
リンク
リンク
リンク
コメント