Oct04

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://u-ziq.com/cgi/mt/mt-tb.cgi/96

コメント

http://kikky.net/pc/mouse_over.html
参考に

あとbodyにbackground-color:#fff;を指定したほうがいいですよ。
http://kikky.net/pc/bgcolor.html

hama>
はじめまして。background-color:#fffは気が利いていて良いですね。個人的には今はロールオーバーはjavascriptで簡単にシンプルにするほうが良いかなって考えもあります。CSSでは今はもっと色々なロールオーバーの方法があって、どの方法を採用するか難しいところですね。hamaさんの方法非常に参考になりました。

Coments

▲TOP

FEED

RSS    

JOB INFO




ANNOUNCE

  • 現在はありません。イベント&セミナーなどのお知らせを掲載してほしい方はお問い合わせフォームよりお気軽にご連絡ください。

WHO IS WRITING

テクノラティお気に入りに追加する

WEBデザインとシステムの共存、WEBストラテジーを考えた情報設計(IA)