Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何通过单击<;李>;?_Html_Css_Menu_Html Lists_Anchor - Fatal编程技术网

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;
        }