使整个 与适当的HTML链接(Make whole
  • as link with pro
  • 2019-08-03 14:48发布

    我知道这之前已经过了很多次,但我找不到我的特定情况下,任何解决方案。

    我有一个导航栏,我想整个<li>的被‘挂’或‘点击’如果你愿意。 现在只有<a> (和<div>的我已经摆弄)是‘点击’。

    我已经试过li a {display: inner-block; height: 100%; width: 100%} li a {display: inner-block; height: 100%; width: 100%} li a {display: inner-block; height: 100%; width: 100%}的方法,但结果,其中只可怕。

    源可以在这里找到: http://jsfiddle.net/prplxr/BrcZK/

    HTML

    <!DOCTYPE html>
    <html>
        <head>
            <title>asdf</title>
        </head>
        <body>
            <div id="wrapper">
                <div id="menu">
                    <div id="innermenu">    
                        <ul id="menulist">       
                            <li class="menuitem"><a href="index.php"><div class="menulink">Lnk1</div></a></li>
                            <li class="menuitem"><a href="index.php"><div class="menulink">Lnk2</div></a></li>
                            <li class="menuitem"><a href="index.php"><div class="menulink">Lnk3</div></a></li>
                            <li class="menuitem"><a href="index.php"><div class="menulink">Lnk4</div></a></li>
                        </ul>
                    </div>
                </div>
            </div>
        </body>
    </html>
    

    不要任何人有一个很好地解决了这个?

    先感谢您!

    Answer 1:

    • 摆脱<div>秒。
    • 设置<a>代码,以display: block
    • 从移动填充<li><a>
    • <li>旨意需要被任一浮动或display: inline-block

    例如: http://jsfiddle.net/8yQ57/



    Answer 2:

    只要使用“显示块”的链接。

    ul {
      display: block;
      list-style-type: none;
    }
    
    li {
      display: inline-block; /* or block with float left */
      /* margin HERE! */
    }
    
    li a {
      display: block;
      /* padding and border HERE! */
    }
    

    这里的例子http://jsfiddle.net/TWFwA/ :)



    Answer 3:

    我自己只是有这个问题。

    答案再简单不过了:

    <li class="menuitem"><a href="index.php"><div class="menulink">Lnk1</div></a></li>
    Wrong:
    .menuitem {
        list-style-type:        none;
        display:                 inline;
        margin-left:            5px;
        margin-right:            5px;
        font-family:            Georgia;
        font-size:                11px;
        background-color:        #c0dbf1;
        border:                 1px solid black;
        padding:                10px 20px 10px 20px;
    }
    
    Correct
    .menuitem a {
        list-style-type:        none;
        display:                 block;
        margin-left:            5px;
        margin-right:            5px;
        font-family:            Georgia;
        font-size:                11px;
        background-color:        #c0dbf1;
        border:                 1px solid black;
        padding:                10px 20px 10px 20px;
    }
    

    换句话说,你想申请的是LI的只好A元素的CSS。 在确认A是一个块行元件



    Answer 4:

    我想你可能意味着inline-block ,不inner-block

    li a {display: inline-block; height: 100%; width: 100%; }
    

    此外, inline-block都有自己的一套的问题与旧的IE浏览器,而且很可能会没有反应过来你如何期望。



    Answer 5:

    您使用jquery一个先生? 如果是的话,你可以尝试:

    $("li").click(function(){
       $(this).find('a').click();
    });
    

    或者你可以使用它作为太CSS:

    li{
      position:relative;
    }
    li a {
      position:absolute;top:0px;left:0px;width:100%;height:100%;
    }
    

    选择一个...祝你好运



    Answer 6:

    只需格式化a ,而不是直接的li与你的风格。

    我已经alterd你的提琴http://jsfiddle.net/BrcZK/1/



    Answer 7:

    这是我做的:

    a { display: block; }
    

    然后样式锚,因为我认为合适的。

    这里的小提琴: http://jsfiddle.net/erik_lopez/v4P5h/



    Answer 8:

    你应该把a元素display:blockdisplay:inline-block



    Answer 9:

    移动<a>代码,使它们包住<li>标记。 根据这个答案,锚标签必须包含内联元素,它看起来像你的<li>的是内联,所以这应该是有效的。



    文章来源: Make whole
  • as link with proper HTML