下拉菜单边框不会扩展到全宽

时间:2016-02-04 21:23:55

标签: html css

我正在尝试为下拉菜单标签创建底部边框。我知道在哪里添加属性来添加边框,但我遇到的问题是边框不是从左到右一直延伸。

HTML:

<div id="navigation">
    <ul>
        <li><a href="#" id="home">Home</a></li>
        <li><a href="#" id="zeus">Zeus</a>
        <li><a href="#" id="poseidon">Poseidon</a>
        <li><a href="#" id="hercules">Hercules</a>
        <li><a href="#" id="athena">Athena</a>
        <li><a href="#" id="help">Help</a>
            <ul>
                <li><a href="#">Contact</a></li>
                <li><a href="#">FAQ's</a></li>
            </ul>
        </li>
        <li><a href="#" id="account">Account</a>
            <ul>
                <li><a href="#">Cart</a></li>
                <li><a href="#">Orders</a></li>
            </ul>
        </li>
    </ul>
</div>

CSS:

#navigation {
    background-color: #404040;
    display: block;
    text-align: center;
}

#navigation ul {
    display: block;
    list-style-type: none;
    margin: 0;
    padding: 0;
    position: relative;
}

#navigation ul a {
    color: white;
    display: block;
    font-size: 18px;
    font-weight: 500;
    line-height: 32px;
    padding: 0 30px;
    text-decoration: none;
}

#navigation ul li {
    display: inline-block;
    margin: 0;
    padding: 0;
    position: relative;
}

#navigation ul ul {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    background:#fff;
    padding:0
}

#navigation ul ul a {
    line-height: 120%;
    padding: 10px 15px;
}

#home:hover {
    color: gray;
}

#zeus:hover {
    color: red;
}

#poseidon:hover {
    color: blue;
}

#hercules:hover {
    color: gold;
}

#athena:hover {
    color: #00ff00;
}

#help:hover {
    color: gray;
}

#account:hover {
    color: gray;
}

#navigation ul li ul a:hover {
    color: gray;
}

#navigation ul li:hover > ul {
    display: block;
    background-color: #404040; 
    text-align: left;
    z-index: 99;
}

2 个答案:

答案 0 :(得分:1)

您将li设置为display:inline-block,使其“缩小至适合”,具体取决于内容。您可以将width:100添加到子li,以确保它始终保持父级的全宽。

#navigation li li {
  border-bottom: 1px solid lime;
  width: 100%;
}

<强> jsFiddle

答案 1 :(得分:0)

您可以使用以下规则拉伸底部边框:

#navigation a + ul li{ /* set width to dropdown menu */
  width: 100%;
}

#navigation a + ul li{ /* set width and border to dropdown items */
  width: 100%;
  border-bottom: 3px solid blue;
}

他们会确保您的下拉菜单获得100%宽度

您可以在this fiddle

中试用