2006年10月 4日

CSSの画像置換でロールオーバー


CSSでロールオーバーする際の画像のチラつき防止対策

CSSのbackgroundとa:hoverを利用してロールオーバーを作ると背景のaタグを入れる親ノードのbackgoundにも背景を入れておかないとhover時に読み込みが追いつかずに画面上で何も背景が読み込まれない状態ができてしまいチラチラしてしまいます。

そこでCSSでロールオーバーする際の画像のチラつき防止対策を2つご紹介します。

background:none !important;でhover時に背景を消す方法

  • メリット:ソースコードが少なくすむのでスマート
  • デメリット:!importantはユーザースタイルシート操作するのでユーザビリティー的にお勧めはしない(硬いですけどねw)
div#side ul#sideMenu li#sideMenuButton {
    background:url(../../images/menubutton_hover.gif);
}
div#side ul#sideMenu li#sideMenuButton a{
    display:block;
    width:200px;
    height:50px;
    background:url(../../images/menubutton.gif);
    outline:none;
}
div#side ul#sideMenu li#sideMenuButton a:hover {
    background:none !important;
}

a:hover時にロールオーバーの画像を被せる方法

  • メリット:特に無し
  • デメリット:ソースコードが多くなる
div#side ul#sideMenu li#sideMenuButton {
    background:url(../../images/menubutton_hover.gif);
}
div#side ul#sideMenu li#sideMenuButton a{
    display:block;
    width:200px;
    height:50px;
    background:url(../../images/menubutton.gif);
    outline:none;
}
div#side ul#sideMenu li#sideMenuButton a:hover {
    background:url(../../images/menubutton_hover.gif);
}

結論でいうとこの二つの方法だとどっちでもいいかなw

Related entries

Track back URL

http://www.u-ziq.com/cgi/mt/mt-tb.cgi/303

COMENTS

▲TOP

MY TWEET

MY LAST FM

FACEBOOK

SOCIAL CONTENTS