スクロールバーの有無によるセンタリングのずれを解消するには

2007年2月12日

CSS HappyLifeさんのbodyに設定しておくと便利な3つのポイントとおまけを読んでちと気になったのがhtmlにoverflow-yを指定するというもの。

言われてみればFirefoxとかでスクロールバーのありなしで位置がずれるのは気になるかも(今まであまり気にしてこなかったけど・・・)。この問題はoverflow-y:sclollを指定すればFirefoxではスクロールバーが表示されるので、ずれるのは解消されます。でもHappy Lifeさんのエントリー「Firefoxのスクロールバーの有無でセンタリング位置がズレる件を解消」にもあるようにOperaでは適用されません。

overflow-yというプロパティはもともとIEの独自拡張なんですよね。でもCSS3の草案ではそれが正式に採用されることになったので、Firefoxでは先行実装しているというワケ。ただOperaじゃサポートされていないという問題があります。

overflowプロパティを使わずにOperaでもFirefoxでもIEでもブラウザのサイドバーを出には下記のようなやりかたがあります。

html
  {
  height:100%;
  margin-bottom:1px;
}

これをCSSで指定しておけば、コンテンツの長短にかかわらずサイドバーが出るので、センタリングのずれを解消することができます。

何が一番ベストかというのにはいろいろと議論の余地があると思いますが、方法の一つとしてご参考までに。

関連エントリー

現在、この記事へのトラックバックは受け付けていません。

このエントリーに投稿されたコメント

K.Kojima - 2007.02.16 -AM 3:19

先日は、卒業制作展へのご来場ありがとうございました。

ブログ、よく拝見しています。

Firefoxなどのスクロールバーで表示がずれるのって、私は結構ドキッとします。
一瞬気づかないことが多いです。

対策として、こういう方法もあるのですね~
参考になります。

Kawashima - 2007.02.16 -PM 9:27

>K.Kojimaさん

いえいえ、こちらこそいろいろな作品が見れて楽しかったです。時間がなくて作品見てあげられなくてホントごめんなさい。

ブログはマイペースで運営していきます。
これからも見に来てくださいね!

コメントを投稿する場合は次のフォームよりお願いします

コメント投稿フォーム
(スタイル用HTMLタグが使えます)

ページの先頭に戻る