※ ChatGPTを利用し、要約された質問です(原文:cssを使ったロールオーバについて どちらの記述が良いでしょうか?)
どちらの記述が良い?CSSを使ったロールオーバについて
このQ&Aのポイント
CSSを使ったロールオーバは、2つの方法があります。一つ目は<ul>と<li>を使った方法で、<a>タグの間に画像を配置して、hover時に背景位置を変更します。二つ目は<div>と<h2>を使った方法で、<a>タグ自体に背景画像を設定し、hover時に背景位置を変更します。どちらの方法を選ぶかは、スタイルの組み方やコードの見やすさ、IE7におけるスクロールバーの表示などを考慮して決めることが重要です。
一つ目の方法は、<ul>と<li>を使ってメニューを作成し、<a>タグの間に背景画像を設定します。hover時に背景位置を変更することで、ロールオーバ効果を実現します。一方、二つ目の方法は<div>と<h2>を使ってメニューを作成し、<a>タグ自体に背景画像を設定します。hover時に背景位置を変更することで、ロールオーバ効果を実現します。どちらの方法を選ぶかは、スタイルの組み方やコードの見やすさ、IE7におけるスクロールバーの表示などを考慮して決めることが重要です。
CSSを使ったロールオーバは、<ul>と<li>を使う方法と<div>と<h2>を使う方法の2つがあります。どちらの方法を選択するかは、デザインやスタイルの組み方、コードの見やすさの観点から判断する必要があります。また、IE7におけるスクロールバーの表示にも注意が必要です。
cssを使ったロールオーバについて どちらの記述が良いでしょうか?
cssを使ったロールオーバについて どちらの記述が良いでしょうか?
cssでのロールオーバを使いたく、以下のようなタグに辿りつきました。
----------------------------------------------------------------------
ul.menu { margin:0px 0px 25px 0px;
padding:0px;
clear:both;
float:left;
width:200px;}
ul.menu li {float:left;
width:100px;
display:inline;
text-indent:-9999px;
overflow:hidden;
ist-style:none;}
ul.menu li a {display:block;
width:100px;
height:50px;}
li.menu1 a {background:url(image/menu.gif) 0 0 no-repeat;}
li.menu1 a:hover {background:url(image/menu.gif) 0 -50px no-repeat;}
li.menu2 a {background:url(image/menu.gif) -100px 0 no-repeat;}
li.menu2 a:hover {background:url(image/menu.gif) -100px -50px no-repeat;}
<ul class="menu">
<li class="menu1"><a href="a.html" title="a">a</a></li>
<li class="menu2"><a href="b.html" title="b">b</a></li>
</ul>
----------------------------------------------------------------------
表示はそれで上手く行ったのですが、overflow:hidden;を使うとIE7でスクロールバーが出ないんじゃないか?と言われ、下記のように書き直しました。
----------------------------------------------------------------------
#menu { width:200px;
height:50px;
margin : 0px 0px 25px 0px ; }
#menu h2 {width:100px;
height:50px;
margin:0;
float:left;}
#menu h2 a {display:block;
width:100px;
height:50px;
background-image:url(image/menu.gif) ;}
a.menu1 { background-position: 0 0 ;}
a:hover.menu1 { background-position: 0 -50px ;}
a.menu2 { background-position: -100px 0 ;}
a:hover.menu2 { background-position: -100px -50px;}
<div id="navi">
<h2><a href="a.html" class="menu1" title="a"></a></h2>
<h2><a href="b.html" class="menu2" title="b"></a></h2>
</div>
--------------------------------------------------------
こちらでも表示は出来たのですが、後からIE7で確認した所初めのタグでもスクロールバーは表示出来ました。
とはいえやはり不安ですし後者で行こうかと思ったのですが、後者の場合も<a></a>の間に何もないことが気にかかり決めかねています。詳しい方がいらっしゃいましたら、どっちの方がいいかのアドバイス等頂けないでしょうか。よろしくお願いします。
お礼
回答ありがとうございます。 やはり<a>タグが空なのはよくないんですね…。 overflow:hidden;のことも教えてくださってありがとうございます! 勉強になりました!