• 締切済み

CSSでUL全体をリンクアクティブにしたい。

いろいろ、試してみたのですが、CSSがわからなくて困っています。 添付したように、縦にリストを並べたボタンを作っています。 赤線枠でくくったようにメニューの一つを全体でリンクでくくりたいのですが、 <ul><a href="aaaa.html"><li><li></a></ul> なんてしてはだめですよね。 今は、青でくくったように画像を除いた部分しかリンクアクティブになりません。 全体をリンクさせるにはどうしたらよいでしょうか。 知識不足と下手な添付でもうしわけありませんが、お助けください。 よろしくお願いします。 <div class="section" id="memu"> <ul> <li id="top1"> <a href="aaaa.html"><span>Aメニュー</span><br /> textAtextAtextAtextAtextAtextAtextAtextA</a></li> </ul> <ul> <li id="top2"> <a href="bbbb.html"><span>Bメニュー</span><br /> textBtextBtextBtextBtextBtextBtextBtextBtextB </a></li> </ul> <ul> <li id="top3"> <a href="cccc.html"><span>Cメニュー</span><br /> textCtextCtextCtextCtextCtextCtextCtextCtextCtextC </a></li> </ul> </div> ■■CSS■■ .section { clear:both; margin:0 auto; padding:0; overflow:hidden; } #index { margin:0 auto; } #index #memu ul { clear:both; display:block; margin:0 0 2px 0; padding:10px 0 10px 0; background:url(../img/top_bg.jpg) repeat-x left bottom; border-top: #CCC solid 0px; overflow:hidden; } #index #memu li { padding:1px 10px 0 100px; } #index #memu li a { display:block; height:59px; padding-bottom:10px; color:#000; overflow:hidden; } /* img画像設定*/ #index #memu #top1 { background:url(../img/top1.jpg) no-repeat 10px 5px; } #index #memu #top2 { background:url(../img/top2.jpg) no-repeat 10px 5px; } #index #memu #top3 { background:url(../img/top3.jpg) no-repeat 10px 5px; } /* リンクの見出し部分*/ #index #memu span { color: #AAA; font-size: 1.5em; font-size: 140%; font-weight: bold; }

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

HTMLがどうであれ、同じようにプレゼンテーションできますので、サンプルを示しておきます。  言い換えれば、文書構造とプレゼンテーションを切り離すことで、好きなようにデザインできるし、逆にプレゼンテーションが同じでもHTMLはまったく異なっていてもよいということ。要はHTMLを作成するときプレゼンテーションは考える必要がないということです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>サンプル</title> _<meta name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css"> <!-- div.section div.nav{width:480px;margin:0 auto;} div.section div.nav ul,div.section div.nav ul li{dispaly:block;list-style:none;margin:0;padding:0;} div.section div.nav ul li{width:100%;height:60px;position:relative;font-weight:bold;font-size:1.1em;background-color:aqua;z-index:0;margin-top:5px;} div.section div.nav ul li a{display:block;text-indent:70px;width:auto;height:100%;z-index:10;line-height:20px;} div.section div.nav ul li ul{z-index:-5;position:absolute;top:2px;left:2px;} div.section div.nav ul li ul li{font-size:0.7em;font-weight:normal;width:420px;height:auto;margin-top:0;} div.section div.nav ul li ul li img{float:left;margin-right:5px;} div.section div.nav ul li ul li+li{margin-top:24px;z-index:-1;background-color:silver} --> _</style> </head> <body> _<div class="header"> __<h1>サンプル</h1> _</div> _<div class="section"> __<div class="nav"> ___<ul> ____<li><a href="./cooking">男の料理</a> _____<ul> ______<li><img src="./image/a-1.gif" width="60" height="50" alt="肉じゃが"></li> ______<li>男子厨房に入らず・・とは言っても、アウトドアでは腕を振るうことも・・</li> _____</ul> ____</li> ____<li><a href="./camp">キャンプ</a> _____<ul> ______<li><img src="./image/a-2.gif" width="60" height="50" alt="愛車"></li> ______<li>トータルすると、すでに100泊を超えてしまったキャンプの記録</li> _____</ul> ____</li> ____<li><a href="./dog">犬</a> _____<ul> ______<li><img src="./image/a-3.gif" width="60" height="50" alt="シェリー"></li> ______<li>大事な家族の一員である我が家のペットのこと</li> _____</ul> ____</li> ___</ul> __</div> _</div> _<div class="footer"> _</div> </body> </html>

noname#153155
質問者

お礼

丁寧なサンプル、本当にありがとうございます! 試してみます。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

ひとつのナビゲーションですから、 <div class="nav">  <ul>   <li><a href=""></a></li> と言う形になります。デザインのためにHTMLを書こうとするから無理が生じる。 リンクに、リンク先のタイトル/サムネイル/説明文が入るのですから、ごく普通に <div class="nav">  <ul>   <li><a href=""><span class="title">title</span><img><span class="message">なんたらかんたら・・・・</a></li>  あるいは、 <div class="nav">  <dl>   <dt><a href="">title</a></dt>   <dd><img></dd>   <dd>なんたらかんたら・・・・・・・・・・・</dd>  あるいは、 <div class="nav">  <ul>   <li><a href="">title</a>    <ul>     <li><a href=""><img></a></li>     <li><a href-="">なんたらかんたら・・・・</a></li>  とかすべきです。  background-imageは、文字通り背景です。背景ではなくサムネイルのように意味のある画像なら<img>でマークアップすべきです。 ・・・スタイルシートのためだけに、無意味なIDはつけないようにしましょう。

noname#153155
質問者

お礼

ありがとうございます。 無意味なID、使ってますね。CSSが全体的な部分が勉強しても、全くわからず、考え物です。。 <div class="nav">  <ul>   <li><a href=""><span class="title">title</span><img><span class="message">なんたらかんたら・・・・</a></li> やってみます。ありがとうございます。

  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

こんな感じかな。 ・liをposition:relative ・aをposition:absolute;z-index:10にして、liと同じ大きさに。 ・aの中のspanは別途、お好みの場所へ。 ・aは装飾がない(透明)ことが前提

noname#153155
質問者

お礼

ご回答、ありがとうございます! やってみたのですが、応用力がなくて・・ 何かの時にまた参考にさせて頂きます、ありがとうございます。

関連するQ&A