- ベストアンサー
1枚画像でリンクposition指定。現在のページ表示するには?
- cssで横並びのリンクバーがmap、予約、menuとかあり、デフォルト(2)カーソルを合わせた時(3)現在のページはココですよ、の状態を1枚の画像で作り、positionで各ごとの表示ができるように指定をしました。
- デフォルト時の画像と、オンマウスの表示はIE・operaともに可能なのですが肝心の、(3)のクリックした時がきちんと表示されません。クリックした現在のページの表示指定は、"active" ではないのでしょうか。
- 自分なりに調べて、cssで1枚画像でリンク、というのををやってみたかたったのですがむしろ逆に面倒なことになってしまいました。なぜ表示できないのか、解決方法があるのか知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>mapとstayの間の「.」はいるんでしょうか。 html側では複数のクラスを指定する際、半角スペースで区切ります。 cssの書き方はまた意味合いが違ってきています。 .mapはmapというクラス名が指定された要素をさします。 なので a.map とすると、a要素でmapというクラス名が指定された要素という意味になります。 その要領でmapとstay両方を指定したものを選びたい時は a.map.stay とします。こうするとa要素でmapとstayのクラス名が指定された要素という意味になります。 実質的にはa.stay.mapでも良いのですが、管理の面からa.map.stayと指定したサンプルを推奨しました。 ちなみにa.map stayとすると、a要素でmapというクラス名が指定された要素の子要素のstay要素という意味になります。 実際には存在しませんが、あえてHTMLを書いてみると <a href="#" class="map"><stay>サンプル</stay></a> こういう感じになります。
その他の回答 (1)
:activeで指定するのはクリックした時のスタイルだけです。 私なら適当なclassを追加して現在地用のスタイルをあてます。 軽く読んだ程度なので間違っているかもしれませんが a:active.map{ background-position: 0px -100px; } というのがページの現在位置を表すためのスタイルなら a.map.stay { background-position: 0px -100px; } a.res.stay { background-position: -119px -100px; } a.manu.stay { background-position: -238px -100px; } a.about.stay { background-position: -357px -100px; } のような感じにしてhtmlの方はこのスタイルを適用したいボタンに、追加でclassを指定するだけです。 <a href="#"class="map stay"><span>地図</span></a> 画像を1枚でやろうとするとこういう感じになるとは思いますが、ホバー時のちらつきが無くなるので良い試みだと思いますよ。
補足
早速の回答ありがとうございます!! 回答遅くなりすいませんでした。 いただいたこちらの <a href="#"class="map stay"><span>地図</span></a>は htmlの中での該当ページの、ところのみに記述しますよね? そしてcssなんですが、ここの a.map.stay { background-position: 0px -100px; } mapとstayの間の「.」はいるんでしょうか。 ちょっと試してみたのですがわたしのhtml・cssへの理解が浅く いつも難しく考えすぎ、いろいろためしてしまい 苦戦しております・・・明日また試してみます! a:activeはやはりクリックした時のスタイルのみというのは分かったので よかったです。 ありがとうございました。
補足
再度の回答ありがとうございます! すばらしい・・詳しい説明で、よく分かりました! おかげさまで、まだすべて試してないのですが なんとか思ったように出来そう、と思ったのですが・・・・ opera、firefoxだと大丈夫なのですが IE(6.0)で見ると、ああ、a.map.stayの部分はa.about.stayの表示になっているのです!!(号泣) 調べたらIEに複数class指定するとバグが、と言う情報もありましたが、そんな難しいことじゃあないような気もしますので また引き続き調査してみます。 まだ完成では無いのですが、せっかく2回も投稿してくださったので、取り急ぎ補足いたしました! ありがとうございました。