Html 如何通过单击<;李>;?
我有以下标记Html 如何通过单击<;李>;?,html,css,menu,html-lists,anchor,Html,Css,Menu,Html Lists,Anchor,我有以下标记 <ul id="menu"> <li><a href="#">Something1</a></li> <li><a href="#">Something2</a></li> <li><a href="#">Something3</a></li> <li>&l
<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>
IE6可能需要一些调整,但这取决于您如何操作。您可以在LI标记内尝试“onclick”事件,并更改“location.href”,如javascript中所示
您也可以尝试将li标记放在a标记中,但是这可能不是有效的HTML。正如Marineio所说,您可以使用
的onclick属性通过javascript更改位置。href
:
<li onclick="location.href='http://example';"> ... </li>
... 李>
或者,您可以删除
中的任何边距或填充,并在
的左侧添加一个较大的填充,以避免文本越过项目符号。以下操作似乎有效:
ul#menu li a {
color:#696969;
display:block;
font-weight:bold;
line-height:2.8;
text-decoration:none;
width:100%;
}
如何通过点击激活HTML链接
通过让你的链接和你的li一样大:只需移动指令即可
display: block;
从李到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:#菜单是一个足够的指示,除非您需要重视这两个规则以覆盖其他指示。这将使整个
对象成为链接:
<li onclick="location.href='page.html';" style="cursor:pointer;">...</li>
只需在“p”标记或类似标记中添加链接文本,并在该元素中添加边距和填充,这样就不会影响MiffTheFox提供给您的设置,即
<li> <a href="#"> <p>Link Text </p> </a> </li>
使用jQuery,这样就不必在
元素上编写内联javascript:
$(document).ready(function(){
$("li > a").each(function(index, value) {
var link = $(this).attr("href");
$(this).parent().bind("click", function() {
location.href = link;
});
});
});
只是想抛开这个选项:
<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>
然后,我可以对 应用我想要的任何样式
注意:验证器会抱怨这种方法,但如果你和我一样,不以这种方法为基础,那么这种方法应该可以很好地工作。jqyery这是另一个版本,jquery稍微短一点。
假设
元素位于de
元素内部
$(li).click(function(){
$(this).children().click();
});
或者,您可以在的末尾创建一个空链接:
<a href="link"></a>
.menu li{position:relative;padding:0;}
.link{
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
}
.menu li{位置:相对;填充:0;}
.链接{
底部:0;
左:0;
位置:绝对位置;
右:0;
排名:0;
}
这将创建一个完全可点击的
,并将您的格式保留在真正的链接上。
它对标签也很有用,我找到了一个简单的解决方案:将标签“li”放在标签“a”内:
锚href链接适用于li:
#menu li a {
display:block;
}
a{
显示:块;
位置:相对位置;
}
我想这就是你所需要的。我就是这样做的。它将链接扩展到 标记的大小。它工作正常,但当我正确填充时,文本(链接)粘在了右边框上:.5em将超出 继续调整,你会看到它看起来很完美。检查是否有负的边距和填充,可能有一些内容没有加起来,并且正在崩溃。另外,确保没有错误的文本对齐:右;我给了文本(链接)一个正确的填充,实际上是给 一个正确的填充:0.5em,并且具有 和相同的背景色。但是现在, 的.5em右侧部分无法单击,但这很好。San:通过智能地将填充放置在链接本身上,修复了该问题:li{padding top:.3em;padding bottom:.3em;a{display:block;margin:0px;padding left:10%;width:90%;height:100%;}根据我的经验,通过JavaScript伪造链接几乎总是导致用户体验不佳。这只是他考虑的一个选项,毕竟这是他的网站。他可以在那里保持正常的链接,即使Javascript被关闭,它也能正常工作(只是如果点击了li就不行了)。当我将链接的显示更改为“block”时,它会将自己置于与项目符号不同的一行上。让我来细化该响应。。。我上面解释的行为发生在Firefox和Opera中,但不发生在Chrome中。它在Chrome中运行良好。如果您在li和a上都保持显示:块,会怎么样?否则,请把你的问题写在另一个问题上。你能详细说明一下吗?为什么这是一个坏主意?这个主意对我来说是最好的。我使用了
并将显示设置为块。Span似乎比一个段落更正确。无论哪种方法都很有效,这是无效的。唯一可能是
的子元素是
<代码>有效性和功能性之间不一定存在联系。ul元素的子元素(直接子元素)必须都是li元素。这是一个纯粹的语法要求。根据-此答案将导致出现无效的HTMLA野生验证程序。:)这将触发一个连续循环。因为单击子对象->也单击父对象。
$(li).click(function(){
$(this).children().click();
});
<a href="link"></a>
.menu li{position:relative;padding:0;}
.link{
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
}
<a href="#"><li>Something1</li></a>
#menu li a {
display:block;
}