🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1395閲覧

擬似要素にposition:absoluteを指定すると消える

HirotakaKOBORI

総合スコア2

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/01/20 13:20

擬似要素で作成したboxの位置をposition:absoluteで指定して固定したいのですが、指定した瞬間に当該boxが消失してしまいます。
※position:absoluteを削除すると、擬似要素のboxを表示することができます。

何卒よろしくお願いします。

html

1<div class="ex_left"> 2 <div class="ex_wrapper"> 3 <div class="ex_img"></div> 4 <div class="ex_disc">イタリアのおばあちゃんと手作りパスタを作ろう</div> 5 </div> 6</div> 7

css

1.ex_left > .ex_wrapper > .ex_img { 2 position: relative; 3} 4.ex_left > .ex_wrapper > .ex_img::before { 5 content: ""; 6 display: block; 7 padding-top: 100%; 8 background-color: green; 9 position: absolute; 10} 11.ex_disc { 12 background-color: grey; 13 border-radius: 0 0 20px 20px; 14 height: 50px; 15 } 16

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

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

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

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

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

guest

回答1

0

ベストアンサー

position: absolute; を設定した場合は、width を設定するか、left, right を設定しないと幅0になります。width を指定してください。
例えば、

vba

1.ex_left > .ex_wrapper > .ex_img::before { 2 content: ""; 3 display: block; 4 padding-top: 100%; 5 background-color: green; 6 position: absolute; 7 width: 100%; 8}

ただし、これだと後の要素が上に潜り込みます。

想像するに、やりたいことは、下記のようなことかな?

css

1.ex_left > .ex_wrapper > .ex_img { 2 position: relative; 3 padding-top: 100%; 4} 5.ex_left > .ex_wrapper > .ex_img::before { 6 content: ""; 7 display: block; 8 padding-top: 100%; 9 background-color: green; 10 position: absolute; 11 top: 0; 12 width: 100%; 13} 14.ex_disc { 15 background-color: grey; 16 border-radius: 0 0 20px 20px; 17 height: 50px; 18 }

投稿2021/01/20 13:39

hatena19

総合スコア34073

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

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

HirotakaKOBORI

2021/01/21 11:39

>想像するに、やりたいことは、下記のようなことかな? 仰る通りです!ご丁寧にありがとうございます。 position:absoluteのイメージについて伺いたいのですが、指定した要素が浮くようなイメージなのでしょうか。 というのも、記載いただいたコード内の .ex_left > .ex_wrapper > .ex_img { position: relative; padding-top: 100%; } にpadding-top:100%を指定したのは、.ex_imgに高さを持たせるためだと理解しています。 .ex_imgに高せないと、.ex_discが擬似要素のboxの下に潜り込んでしまうのは、そのboxが浮いているから?でしょうか。 以上、追加質問で恐縮ですがご確認いただけると幸いです。
hatena19

2021/01/21 12:00

そのような理解であってます。 さらに言えば、.ex_imgに高さを持たせることが可能なら、疑似要素を使わなくても、下記で同じ結果にはなります。 .ex_left > .ex_wrapper > .ex_img { position: relative; padding-top: 100%; background-color: green; } .ex_disc { background-color: grey; border-radius: 0 0 20px 20px; height: 50px; }
HirotakaKOBORI

2021/01/21 12:51

ご回答ありがとうございます!大変勉強になりました。引き続きよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問