※ ChatGPTを利用し、要約された質問です(原文:CSSのposition値の上書き(打消)について)
CSSのposition値の上書き(打消)について
このQ&Aのポイント
CSSのposition値の上書き(打消)についてについてご質問があります。
トップページとその他のページでposition: absolute; で配置を変えたいDIV要素がありますが、上書きがうまくできないようです。
top → bottom に、left → right に変更したいが、継承元の設定を無効にする方法はありますか?
CSSのposition値の上書き(打消)について
現在、スタイルシートにてサイトを制作中です。
トップページとその他のページでposition: absolute; で配置を変えたいDIV要素があり、
以下のようなCSSを記述してテスト中です。
(※トップページにはbodyに#topというIDを割り振ったとします。)
<style>
div#test {position: absolute; left: 10px; top: -20px; width: 980px; height:160px;}
body#top div#test {bottom: 80px; right: 15px;}
</style>
<div id="test"></div>
上記のように、トップページのみに body#top div#test として上の要素のサイズなどを
継承していますが、
position の値のみを top → bottom に、left → right に変更して設定にしようとしております。
通常ページでは position を left と top からの位置で適用しておりますが、
トップのみ bottom と right から適用する必要がある場所に配置したいと考えています。
しかし上記のように継承して記述しても、
トップページではどうしても left と top からの指定となってしまい、
bottom: 80px; right: 15px; という新たなposition値は無視されてしまうようなのです。
横幅などは通常下にあるものが上書きされるのですが、この場合には駄目な様です・・・。
ここで難しいのは、top → bottom に、left → right に変更したいという点にあると思います。
つまり上書きは出来ないため、上の要素のtop 、 left はそのまま継承されてしまうようです。
top 、 left 、bottom 、 right のすべてを body#top div#test に記述しても駄目なので、
どうにかして継承元の top と left の設定を下位で継承させない
(無効にする?)ような方法はありませんか?
参考本やネット上の情報でも、このあたりの記述は無く、
今まであまりこのように position をページごとに別の方向から指定するように
スタイルシートを書いたことが無いため、完全にわからない状態です。
お分かりになられる方がいらっしゃいましたら、アドバイスいただければ幸いです。
お礼
この度は大変的確、且つご親切にアドバイスをいただきましてありがとうございました。古い参考書で数年前から独学で進めてきましたが、そちらにはまだinheritなどは記述がなく、仕様書でも今まで確認をしておりませんでしたが、これを機会に一度目を通し、さらに研鑽を深めていきたいと思います。本当にありがとうございました。今後ともどうぞよろしくお願いいたします。