私は次のマークアップを持っています、
<ul id="menu">
<li><a href="#">Something1</a></li>
<li><a href="#">Something2</a></li>
<li><a href="#">Something3</a></li>
<li><a href="#">Something4</a></li>
</ul>
<li>
は少し大きく、左側に小さな画像があります。リンクをアクティブにするには、<a>
をクリックする必要があります。 <li>
をクリックしてリンクを有効にするにはどうすればよいですか?
編集1:
ul#menu li
{
display:block;
list-style: none;
background: #e8eef4 url(images/arrow.png) 2% 50% no-repeat;
border: 1px solid #b2b2b2;
padding: 0;
margin-top: 5px;
}
ul#menu li a
{
font-weight: bold;
text-decoration: none;
line-height: 2.8em;
padding-right:.5em;
color: #696969;
}
#menu li { padding: 0px; }
#menu li a { margin: 0px; display: block; width: 100%; height: 100%; }
IE6を微調整する必要があるかもしれませんが、それはあなたがそれをどのように行うかです。
Marineioが言ったように、<li>
のonclick
属性を使用して、javascriptを介してlocation.href
を変更できます。
<li onclick="location.href='http://example';"> ... </li>
または、<li>
のマージンまたはパディングを削除し、<a>
の左側に大きなパディングを追加して、テキストが箇条書きを越えないようにすることができます。
このオプションをそこに捨てるだけです:
<ul id="menu">
<a href="#"><li>Something1</li></a>
<a href="#"><li>Something2</li></a>
<a href="#"><li>Something3</li></a>
<a href="#"><li>Something4</li></a>
</ul>
これは私のメニューで使用するスタイルで、リストアイテム自体をハイパーリンクにします(画像をリンクにする方法と同様)。
スタイリングには、通常次のようなものを適用します。
nav ul a {
color: inherit;
text-decoration: none;
}
その後、希望する<li>に任意のスタイリングを適用できます。
注意: バリデーターはこの方法について文句を言いますが、もしあなたが私のようであり、それらに基づいて生活をしていないなら、これはうまくいくはずです。
リンクテキストを 'p'タグなどでラップして追加し、その要素にマージンとパディングを追加するだけです。これにより、MiffTheFoxが提供する設定、つまり.
<li> <a href="#"> <p>Link Text </p> </a> </li>
これにより、<li>
オブジェクト全体がリンクとして作成されます。
<li onclick="location.href='page.html';" style="cursor:pointer;">...</li>
jqueryこれはjqueryがもう少し短くなった別のバージョンです。 <a>
要素がde <li>
要素の中にあると仮定します
$(li).click(function(){
$(this).children().click();
});
以下はうまくいくようです:
ul#menu li a {
color:#696969;
display:block;
font-weight:bold;
line-height:2.8;
text-decoration:none;
width:100%;
}
または、<li>
の最後に空のリンクを作成できます。
<a href="link"></a>
.menu li{position:relative;padding:0;}
.link{
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
}
これにより、完全なクリック可能<li>
が作成され、フォーマットが実際のリンクに保持されます。 <div>
タグにも役立ちます
アンカーhrefリンクはliに適用されます:
#menu li a {
display:block;
}
私は簡単な解決策を見つけました:タグ「li」をタグ「a」の中に入れます:
<a href="#"><li>Something1</li></a>
LIタグ内で「onclick」イベントを試行し、javascriptのように「location.href」を変更できます。
Liタグをaタグ内に配置することもできますが、これはおそらく有効なHTMLではありません。