make <li>整个<a> (link) vertical menu</a> </li>

时间:2013-03-23 07:41:08

标签: html css

任何想让LI成为整个链接的想法?

#nav{
position: relative;
width: 120px;
}
#nav a {
display: inline;
width: 100%
text-decoration: none;
}
#nav ul{
list-style-type: none;
}
#nav ul li{
background: #c0c0c0;
border-bottom: 1px dotted #404040;
}
#nav ul ul{
position: absolute;
left: 81px;
display: none;
}
#nav ul ul li{
background: #c0c0c0;
}
#nav ul li:hover ul{
display: inline;
}

这里是链接:jsfiddle

我试过的选项:

  
      
  1. a {display:block; } - &gt;这个工作,但第二个UL下降。
  2.   
  3. a {display:inline-block;} - &gt;第二个UL问题已修复,但LI不是链接。
  4.   
  5. a {display:inline-block;宽度:100%;身高:100%; } - &gt;与2相同。
  6.   

提前感谢。

5 个答案:

答案 0 :(得分:2)

这是因为填充不起作用。该元素实际上与其他元素重叠。

#nav ul ul{
    position: absolute;
    top:0px;
    left: 80px;
    display: none;
    padding-left:0px;
}

您可以在此处找到完整的演示: Working Demo

答案 1 :(得分:0)

#nav a {
    display: block;
    text-decoration: none;
    float: left;
    width: 80px;
}

#nav ul li{
    background: #c0c0c0;
    border-bottom: 1px dotted #404040;
    overflow:hidden;
}

工作示例:http://jsfiddle.net/wX2ss/16/

答案 2 :(得分:0)

你需要改变这个css

    #nav a {
    display: block;
    text-decoration: none;
    }

你可以在这里查看

http://jsfiddle.net/wX2ss/30/

答案 3 :(得分:0)

尝试

#nav{
    position: relative;
    width: 120px;
}
#nav a {
    display: inline-block;
    text-decoration: none;
    width: 100%;
    background-color: lightblue;
}
#nav ul{
    list-style-type: none;
}
#nav ul li{
    background: #c0c0c0;
    border-bottom: 1px dotted #404040;
    position: relative;
}
#nav ul ul{
    position: absolute;
    left: 43px;
    display: none;
    top: 0;
}
#nav ul ul li{
    background: #c0c0c0;
}
#nav ul li:hover ul{
    display: inline;
}

演示:Fiddle

答案 4 :(得分:0)

试试这个

            #navbar ul li {
            display: inline;
            position: relative;
            }

            #navbar ul li ul  {
            position: absolute;
            visibility: hidden;
            }

            #navbar ul li:hover>ul {
            visibility: visible;
            position: absolute;
            display: block;
            }

            <div id="navbar">
                <ul>
                    <li><a href="link">1</a></li>
                    <li><a href="#">2</a>
                        <ul>
                            <li><a href="link">x</a></li>
                            <li><a href="link">y</a></li>
                            <li><a href="link">z</a></li>
                        </ul>
                    </li>
                    <li><a href="link">3</a></li>
                </ul>
            </div>