ロールオーバーが上手く行きません。
-
0 名前: りえ : 2006/02/26 01:36
- ようやく自分のイメージするレイアウトにできあがってきました。
情報を下さった皆様には、本当に感謝しております。
下記ページにつき
http://thai777.web.fc2.com/test_24feb.html
左側のメニューバーは、リンクの張られている部分に
カーソルが重なると、背景の色が黄色に変わります。
黄色い部分は、どの部分でもクリックできるよう
display:blockを指定しています。
上の9つのボックスで、テキストにカーソルを乗せると
背景に変わるのですが、テキスト以外の場所にカーソルを
持って行っても、背景の色が上手く変わりません。
他のボックスは、どの部分にカーソルを持って行っても
背景が黄色に変わり、どの部分でもクリックできるように
なるのですが、上の9つのボックスだけが、思うように
動作しないのです。
ソースを確認したのですが、原因がわかりません。
何度も恐縮ですが、是非教えて下さい。
お願いします。
-
1 名前: りえ : 2006/02/26 01:36
- 色々と調べてみたのですが、ヘッダーの下にある、floatで横に配列した
ポップアップメニューの、ポップアップメニュー項目
が下がる位置までにあるサイドメニューの項目が、上手くロールオーバー
しないことがわかりました。
ヘッダーの下にある、ポップアップメニューのソースを修正する
必要があるのだと思うのですが、どこを修正、もしくは追加すれば良いのかわかりません。
ご存知の方がいらっしゃいましたら、是非教えて下さい。
以下、ポップアップメニューに指定した、スタイルです。
また、サイトURLは
http://thai777.web.fc2.com/test_24feb.html
になります。
以下、ポップアップメニューのスタイル
↓
.navbar {
width: 666px;
position:absolute;
top:135px;
left:0px;
border-style: none;
}
.navbar h2 {
margin:0px;
font-size: 11px;
font-family: "MS Pゴシック",Osaka,Sans-Serif;
color:#ffffff;
}
.navbar h2 a {
display: block;
text-align: center;
width:110px;
height: 30px;
line-height: 28px;
background-color:#ADD8E6;
border-style:solid;
border-width:1px 1px 1px 0px;
border-color:#000080 #191970 #191970 #ccffff;
color:#0033cc;
background-image:url(../photo/menu.gif);
}
.menu {
width:110px;
float:left;
left: 0px;
top: 135px;
}
.menu ul {
margin: 0px;
padding:0px;
list-style-type:none;
font-size: 11px;
visibility:hidden;
}
.menu li {
background-color: #00ffff;
border-left:solid 1px #CCCCCC;
border-bottom:solid 1px #999999;
border-right:solid 1px #999999;
line-height:100%;
margin: 0px 2px;
padding:2px 0px 1px 1px;
}
.menu li a {
display:block;
padding:2px;
color: #333333;
}
.menu li a:hover {
background-color:#FF9900;
color: #FFFFFF;
}
-
2 名前: BB : 2006/02/26 01:36
- 上記のご質問には、あまり関係ないかもしれませんが、
上部のリンクメニューを、<div class=contents></div>内に
ボーダーを含め隙間なく配置を希望されていると思うのですが、
border(paddingもですが)は、各ブラウザ及び各バージョン、
Doctypeによっても解釈(レンダリング)が異なります。
あまりおすすめではないですが、現在のレイアウトをそのまま
使いたいのでは、ハックを利用するしかないと思います。
又は、ボーダーを含めた背景画像に変更すると、レイアウトは
保てると思います。
その他、IE以外で拝見するとリンクが機能しなかったり、上記の箇所以外で
レイアウトが大きく崩れていました。
もちろんjavascriptを無効にした環境でもそうでが、
先にこちらの問題を解決された方がいいかもしれません。
閲覧環境をIEのバージョン限定で製作されているのでしたら、
ごめんなさい。
とても素敵なサイトになりそうですね。
応援しています。 頑張って下さい。
-
3 名前: りえ : 2006/02/26 01:36
- BBさん、情報ありがとうございました。
IEだけでなく、他のブラウザーも対象にしたいので
ソースを修正して行こうと思います。
borderやpaddingでなく、背景に画像を使おうかと
考え直しました。
一つ教えていただきたいのですが、「あまりおすすめでは
ないハック」とはなんでしょうか?
もしご存知でしたら、最初の質問に関しても、何か情報を
いただければと思います。
ありがとうございました。
-
4 名前: BB : 2006/02/26 01:36
- >一つ教えていただきたいのですが、「あまりおすすめでは
>ないハック」とはなんでしょうか?
borderやpaddingなどその他多数ありますが、
各ブラウザ等によって、解釈が異なりますので、
それ用にCSSを記述し対応させる事です。
CSSでは、各ブラウザが理解出来ない部分は、無視をします、
そして、バグもそれぞれに抱えていますので、
それを、逆手に取る方法です。
!importantやvoice-familyや(\)←バックスラッシュなどを使い、
それぞれのブラウザ等用に値を振り分けます。
以下に参考サイトを上げておきます。
http://www.tantek.com/CSS/Examples/boxmodelhack.html
http://www.info.com.ph/~etan/w3pantheon/style/abmhtest.html
http://css-discuss.incutio.com/?page=BoxModelHack
その他にも、色々なハックが考案されている様ですが、
現在・過去のブラウザ/バージョンに対しては有効ですが、
仮に今後、現在のバージョンのバグ修正が行われたり、
新しいバージョンが出た場合、ハックが逆に仇になる可能性があります。
記述方法を駆使すれば、ハックを使わずとも、
対応出来るケースがあるかもしれません。
りえさんの場合、やはり背景に画像を使うのが、いいかもしれません。
>他のボックスは、どの部分にカーソルを持って行っても
>背景が黄色に変わり、どの部分でもクリックできるように
>なるのですが、上の9つのボックスだけが、思うように
>動作しないのです。
<div class=menu></div>内の<li>が関係している様です。
うまく機能しない左上の9つのボックスの高さと、
javascriptで表示させる上部のメニューの内一番長いメニューの
高さがほぼ同じです。
仮に、<DIV class=menu></div>内の<li>を減らすと、
左のメニューは機能しました。
おそらくpositionで、<div class=menu></div>を配置している為、
下層になる<div class=menu2></div>と重なっている為でしょう。
解決策は?
ごめんなさい。思い浮かばないです。
何方かバトンを!
-
5 名前: BB : 2006/02/26 01:36
- 追記
javascriptでのメニューを外すか、
左メニューは、javascriptで表示させるメニューの高さまでは、
アンカータグを使用しない(メニューにしない)方がいいかもしれないですね。