Alternative Design Project

ADP: おしえてください

2008年12月11日 22:08 | コメント(2) | トラックバック(0)

以前、どうでもいい雑記その236(der Gegenwart)で取り上げられていた、Firefox Add-onsのSBMカウンタでうちのサイトの表示がおかしくなる件、ちょっと見てみた。で、応急処置的に直してみた。

九分九厘SBMカウンタの実装不備だろう、と決めてかかって見てみたのだけれど、実装不備、と言い切っていいものか、よくわからないままでいる。

単純に現象を説明してしまえば、SBMカウンタでidをつけたdivに(position:fixedと)rightとbottomしか指定していなくて、ADPではdiv要素全般にleftとtopを指定していて、結果、SBMカウンタのrightとbottomの指定が無視されてしまった、ということになる。SBMカウンタの方でleft:auto;とtop:auto;を書いてもらうと、うちのようなレアケースでも大丈夫なのだが、まず、div要素全般にleftとtopを指定するサイトなんかまずないよな〜。とりあえず、うちのdivへの指定の仕方は今後考えることにしよう、と思って、ADPのdivの指定そのものを削除して対処した。

問題は、その挙動、つまり、position:fixedのときにtopとbottomが両方指定されていたらbottomを無視する、という挙動が正しいかどうか、すぐ見つけることができなかったことだ。Visual formatting modelに書いてあるのは、Relative positioning限定?

ググってわからないときは、「聞くは一時の恥」。おしえてください。positionがabsolute/fixedのとき、top/bottomの双方(あるいはleft/rightの双方)にauto以外の値が指定されたときの挙動って、どこかに書いてあります?

にしても、ここがわかっていないんだ、ってわかるときって、なぜか、ちょっとワクワクする。

トラックバック(0)

トラックバックURL: http://adp.daa.jp/cgi/mt2/mt-tb.cgi/776

コメント(2)

北村: 2008年12月12日 00:24

CSS 2.1仕様に、fixedかつtop, bottom両方指定の例がありました。
http://www.w3.org/TR/CSS21/visuren.html#fixed-positioning

この例によると「top, bottomはどちらも適用され、その分高さが変更される」という状態になるようです。(Firefox, Operaでの動作もそうなっているようでした)

「bottomを無視する」ように見えたのは、heightを明示的にしたためではないかと推測しましたが、いかがでしょう。

Momomo: 2008年12月12日 00:34

北村さん、明確な解答ありがとうございます。
両方適用される、というのも頭にあったのですが、relativeのほうとごちゃごちゃになっていました。まさしく「聞くは一時の恥」ですね。

コメントの内容確認のため、反映されるまで時間がかかる場合があります。e-mailはサイトに掲載されません。

このページの先頭へ