実現したいこと
ヘッダーは上に固定し、sectionに余白をつけたい
前提
sectionにmarginをつけたのですが、ヘッダーがsectionが始まる位置にきており、一番上でfixされません。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
HTML
1<header class="header"> 2 <div class="inner"> 3 <h1> 4 <a href="#" class="header-logo"> 5 <svg width="179" height="30" viewBox="0 0 179 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 6 </svg> 7 </a> 8 </h1> 9 </div> 10 <button class="hmb" type="button" aria-label="メニューを開く" aria-controls="nav" aria-expanded="false"> 11 <span></span> 12 <span></span> 13 <span></span> 14 </button> 15 </header> 16 <nav id="nav" class="menu js-menu"> 17 <div class="overlay js-overlay"> 18 <img src="image/menu-bg.jpg" alt="menu-img"> 19 <ul class="list js-list" aria-hidden="true"> 20 <li> 21 <a href="index.html" class="rotate"> 22 <span>HOME</span> 23 <span>HOME</span> 24 </a> 25 </li> 26 <li> 27 <a href="#" class="rotate"> 28 <span>PROFILE</span> 29 <span>PROFILE</span></a> 30 </li> 31 <li> 32 <a href="" class="rotate"> 33 <span>NEWS</span> 34 <span>NEWS</span></a> 35 </li> 36 <li> 37 <a href="" class="rotate"> 38 <span>EVENT</span> 39 <span>EVENT</span></a> 40 </li> 41 <li> 42 <a href="" class="rotate"> 43 <span>CONTACT</span> 44 <span>CONTACT</span></a> 45 </li> 46 </ul> 47 </div> 48 </nav> 49 <main> 50 <section id="about-mv"> 51 <div class="a-mv__inner"> 52 <div class="a-mv__wrap"> 53 <div class="a-mv__title"> 54 <div class="inner"> 55 <h1>PROFILE</h1> 56 <p> 57 指導者賞受賞実績を持つ講師をはじめ、 58 幅広く活動をしている講師が寄り添い、 59 丁寧にレッスンいたします。 60 </p> 61 </div> 62 </div> 63 <div class="a-mv__image"> 64 <img decoding="async" src="image/profile_image.jpg" alt="profile"> 65 </div> 66 </div> 67 </div> 68 </section> 69 </main>``` 70 71```CSS 72#about-mv { 73 position: relative; 74 width: 100%; 75} 76.a-mv__inner { 77 position: relative; 78} 79.a-mv__wrap { 80 display: flex; 81} 82.a-mv__title { 83 position: relative; 84 flex: 1; 85} 86.a-mv__image { 87 overflow: hidden; 88 border-radius: 4px 0 0 4px; 89} 90.a-mv__title .inner h1 { 91 color: var(--title); 92 line-height: 1.6; 93 letter-spacing: .4em; 94 word-break: keep-all; 95} 96.a-mv__title .inner p { 97 line-height: 2; 98} 99@media print, screen and (min-width: 769px) { 100 .a-mv__inner { 101 margin-top: 18rem; 102 } 103 .a-mv__image { 104 width: 82rem; 105 } 106 .a-mv__title .inner { 107 position: absolute; 108 inset: 10rem 7rem auto auto; 109 } 110 .a-mv__title .inner p { 111 margin-top: 2.5rem; 112 } 113} 114@media print, screen and (max-width: 768px) { 115 .a-mv__wrap { 116 flex-direction: column-reverse; 117 margin-top: 5rem; 118 } 119 .a-mv__image { 120 width: 34.5rem; 121 margin-left: auto; 122 } 123 .a-mv__title .inner { 124 width: 31.5rem; 125 margin-inline: auto; 126 padding-block: 4rem; 127 } 128 .a-mv__title .inner p { 129 margin-top: 1.5rem; 130 } 131}``` 132 133### 試したこと 134 135bodyにmargin0を設定しましたが、変わりません。 136 137### 補足情報(FW/ツールのバージョンなど) 138 139ここにより詳細な情報を記載してください。
ソースの ``` はそれが行頭である必要があります。
つまり次の様に書くべきです
```
ソース
```
playground としては次な感じですね https://livecodes.io/?x=id/9qzqeqxc2qh
見た感じ yambejp さんの言っている通り body と h1 の margin 問題ぽいですね。(display: block だと display: block flow になってしまう為、 margin が 相殺してしまう為 実際の場所ではない場所の margin が反映されて見えるのが問題ですね。 相殺自体を無効化する場合は display: block flow-root にするのが手ではありますが ここに関しては yambejp の言うように margin を 0 にするのが手っ取り早いと思います。
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_box_model/Mastering_margin_collapsing
