我有以下标记,
<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>
激活链接?
EDIT1:
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;
}
答案 0 :(得分:108)
#menu li { padding: 0px; }
#menu li a { margin: 0px; display: block; width: 100%; height: 100%; }
可能需要对IE6进行一些调整,但这是关于你如何做的。
答案 1 :(得分:16)
正如Marineio所说,你可以使用onclick
的{{1}}属性来改变<li>
,通过javascript:
location.href
或者,您可以删除<li onclick="location.href='http://example';"> ... </li>
中的任何边距或填充,并在<li>
的左侧添加一个大填充,以避免文本超过项目符号。
答案 2 :(得分:15)
只是抛出这个选项:
<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;
}
然后,我可以将任何样式应用于&lt; li&gt;我希望。
注意:验证者会抱怨这种方法,但如果你像我一样并且不以你的生活为基础,这应该可以正常工作。
答案 3 :(得分:9)
只需将链接文本包装在'p'标签或类似内容中,并为该元素添加边距和填充,这样就不会影响MiffTheFox给你的设置,即
<li> <a href="#"> <p>Link Text </p> </a> </li>
答案 4 :(得分:7)
这将使整个<li>
对象成为链接:
<li onclick="location.href='page.html';" style="cursor:pointer;">...</li>
答案 5 :(得分:2)
jquery这是另一个版本,jquery稍微短一些。
假设<a>
元素位于de <li>
元素
$(li).click(function(){
$(this).children().click();
});
答案 6 :(得分:1)
以下似乎有效:
ul#menu li a {
color:#696969;
display:block;
font-weight:bold;
line-height:2.8;
text-decoration:none;
width:100%;
}
答案 7 :(得分:1)
或者您可以在<li>
:
<a href="link"></a>
.menu li{position:relative;padding:0;}
.link{
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
}
这将创建一个完整的可点击<li>
,并在您的真实链接上保留您的格式。
它对于<div>
标记也很有用
答案 8 :(得分:0)
您可以在LI标记内尝试“onclick”事件,并在javascript中更改“location.href”。
您也可以尝试将li标签放在a标签中,但这可能不是有效的HTML。
答案 9 :(得分:0)
我找到了一个简单的解决方案:将标签“ li”置于标签“ a”内:
<a href="#"><li>Something1</li></a>
答案 10 :(得分:0)
Anchor href链接适用于li:
#menu li a {
display:block;
}
答案 11 :(得分:0)
a {
display: block;
position: relative;
}
我认为这就是您所需要的。
答案 12 :(得分:-1)
如何通过点击&lt; li&gt;来激活HTML链接?
通过使您的链接与您的链接一样大:只需移动指令
即可display: block;
从li到a,你就完成了。
那是:
#menu li
{
/* no more display:block; on list item */
list-style: none;
background: #e8eef4 url(arrow.gif) 2% 50% no-repeat;
border: 1px solid #b2b2b2;
padding: 0;
margin-top: 5px;
}
#menu li a
{
display:block; /* moved to link */
font-weight: bold;
text-decoration: none;
line-height: 2.8em;
padding-right:.5em;
color: #696969;
}
附注:您可以从两个选择器中删除“ul”:#menu是一个充分的指示,除非您需要对这两个规则赋予权重以覆盖其他指令。
答案 13 :(得分:-2)
使用jQuery,因此您不必在<li>
元素上编写内联javascript:
$(document).ready(function(){
$("li > a").each(function(index, value) {
var link = $(this).attr("href");
$(this).parent().bind("click", function() {
location.href = link;
});
});
});