bottomプロパティ。
CSSに於けるボックスの下端位置・bottomプロパティに関する解説です。
bottomプロパティとは。
bottomプロパティは、ボックスの下端位置です。
positionプロパティにstatic値以外を指定しているセレクタに対してのみ有効です。
値の意味はpositionプロパティの値により以下のようになります。
relative- 当該要素の下端を、本来表示されるべき位置の下端から指定された値だけ上方向にずらします。
absolute- コンテナブロックの下端を基準に、指定された値だけ上に当該要素の下端を配置します。
コンテナブロックとは、当該要素の上位要素で、一番近い
static値以外の値のpositionプロパティを指定された要素ブロックです。- 但し、該当する上位要素がない場合は、ページ全体がコンテナブロックとなります。
つまり、
- positionプロパティで
static値以外を指定している上位要素があれば、一番近い要素の下端を基準点とします。 - positionプロパティで
static値以外を指定している上位要素が無い場合は、ページの下端を基準点とします。
fixed- 表示メディアでの下端から指定された値だけ上に当該要素の下端を配置します。
bottomプロパティの記述例。
例えば、<address>要素を、画面の左端、下端に表示したい(但し固定しない)場合は、
address {position: absolute;bottom: 0;left: 0;}
と記述します。
bottomプロパティに関する注意事項。
bottomプロパティの仕様上の注意。
実際の配置方法について。
bottomプロパティを用いた場合、以下のプロパティの値から適切な表示になるようにします。
- topプロパティ
- bottomプロパティ
- 上下の余白の幅(margin-topプロパティ及びmargin-bottomプロパティ)
- 上下の枠線の幅(border-top-widthプロパティ及びborder-bottom-widthプロパティ)
- 上下のパディングの幅(padding-topプロパティ及びpadding-bottomプロパティ)
- 要素の高さ(heightプロパティ)
具体的には、
- t - b = mt + mb + bt + bb + pt + pb + h
- t = topプロパティ
- b = bottomプロパティ
- mt 及び mb = margin-topプロパティ 及び margin-bottomプロパティ
- mt 及び mb = border-top-widthプロパティ 及び border-bottom-widthプロパティ
- bt 及び bb = border-top-widthプロパティ 及び border-bottom-widthプロパティ
- pt 及び pb = padding-topプロパティ 及び padding-bottomプロパティ
- h = heightプロパティ
と言う等式を満たすように配置されます。
特に、
- topプロパティ
- bottomプロパティ
- margin-topプロパティ及びmargin-bottomプロパティ
- heightプロパティ
には、auto値を取る事が出来ますが、その場合値の代わりに代数を入れると考えられます。
- 例えば、margin-topプロパティが
auto値であれば、上記の式は、- t - b = x + mb + bt + bb + pt + pb + h
と言う一元方程式になり、この式を解いた結果を反映させれば良い事になります。
しかしながら、これらのプロパティが全部auto値以外の値であった場合、上記の式の成立、すなわち適切な配置が不可能になってしまいます。
このため、仕様では、これら五つのプロパティが全部auto値以外の場合、bottomプロパティの値を無視する、すなわちauto値と見なして配置します。
尚、二つ以上のプロパティがauto値の場合、上記の式は二元以上の方程式となり解が一意的でなくなりますが、仕様では二つ以上の値がauto値の場合についても、解法を明確に規定しております。
また、
- 高さが確定している要素(画像などの置換要素やheightプロパティで高さが指定されている要素)
- 且つ、有効な値を指定されたtopプロパティも併せて指定されている
場合は、bottomプロパティは無効となります。
これは、上端と下端を指定すると、高さが合わなくなってしまうからです。
同様に、
- positionプロパティで
relative値が指定されていて、 - 且つ有効な値を指定されたtopプロパティも併せて指定されている
場合も、ポジショニング前に要素の高さが算出されるため、bottomプロパティは無効となります。