前提・実現したいこと
CSSにて擬似要素でboxを作成し、そのboxを基準(position:relative)として子要素の位置を相対的に決定したいです。
擬似要素にposition:relativeを指定しているのですが、効かない状況です。
擬似要素にposition:relativeは指定できないのでしょうか。
できない場合、その理由も含めて教えていただきたいです。
また、後述の”試したこと”に記載した通り、擬似要素を当てているクラス自体にposition:relativeを指定したら、擬似要素として作成したboxを基準として子要素の位置を決定できました。
こちら何故できたのかわからないので教えていただきたいです。
よろしくお願いいたします。
該当のソースコード
CSS
1.top_wrapper { 2 background-color: red; 3} 4 5.top_wrapper:before { 6 content: ""; 7 display: block; 8 background-color: gray; 9 padding-top: 50%; 10 position: relative; 11} 12.top_left { 13 position: absolute; 14 top: 150px; 15} 16
html
1 <div class="top_wrapper"> 2 <div class="container"> 3 <div class="top_left"> 4 <h1 class="top_message">身近な旅、新しい旅。</h1> 5 <div class="top_btn">近場の宿泊先を探す</div> 6 </div> 7 </div> 8 </div>
試したこと
CSSを以下のように変更(擬似要素を当てているクラス自体にposition:relativeを指定)したらできました。
CSS
1.top_wrapper { 2 background-color: red; 3 position: relative; 4} 5 6.top_wrapper:before { 7 content: ""; 8 display: block; 9 background-color: gray; 10 padding-top: 50%; 11 12} 13.top_left { 14 position: absolute; 15 top: 150px; 16} 17
回答1件
あなたの回答
tips
プレビュー