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
【CSS】
Coments
http://kikky.net/pc/mouse_over.html
参考に
あとbodyにbackground-color:#fff;を指定したほうがいいですよ。
http://kikky.net/pc/bgcolor.html
投稿者: hama |2007年8月10日 20:45
hama>
はじめまして。background-color:#fffは気が利いていて良いですね。個人的には今はロールオーバーはjavascriptで簡単にシンプルにするほうが良いかなって考えもあります。CSSでは今はもっと色々なロールオーバーの方法があって、どの方法を採用するか難しいところですね。hamaさんの方法非常に参考になりました。
投稿者: u-ziq |2007年8月13日 01:15