CSS UL LI垂直菜单

时间:2011-03-01 14:52:15

标签: html css menu html-lists

<%@ Page Language="C#" AutoEventWireup="true" Theme="SF" CodeBehind="ULLITest.aspx.cs" Inherits="ClickDoors_WebApp.ULLITest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">    

        #Menu
        {
            padding:0;
            margin:0;
            list-style-type:none;
            font-size:13px;
            color:#717171;
            width:100%;
        }

        #Menu li
        {
            border-bottom:1px solid #eeeeee;
            padding:7px 10px 7px 10px;
        }

        #Menu li:hover
        {
            color:White;
            background-color:#ffcc00;
        }

        #Menu a:link
        {
            color:#717171;
            text-decoration:none;
        }

        #Menu a:hover
        {
            color:White;
        }
    </style>
</head>

<body>

    <form id="form1" runat="server">

    <div>
        <ul id="Menu">
            <li><a href="#">Internal Doors</a></li>
            <li><a href="#">Prefinished Internal Doors</a></li>
            <li><a href="#">External Doors</a></li>
            <li><a href="#">Internal Pair [French Doors]</a></li>
            <li><a href="#">External Pair [French Doors]</a></li>
            <li><a href="#">Custom Size Doors</a></li>
            <li><a href="#">Door Frames</a></li>
            <li>Test</li>
        </ul>
    </div>

    </form>
</body>
</html>

当我将鼠标悬停在它上面时,背景颜色会立即更改,但字体颜色保持不变,直到我将鼠标悬停在文字上方。

简而言之,我希望我的菜单行为与stackoverflows菜单类似(问题标签用户......)

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:5)

我会这样做:

  1. <a>代码设置为display:block

  2. <li>删除填充(将其设为padding:0px

  3. 将填充重新添加到<a>代码padding:7px 10px 7px 10px;

  4. background-color:#ffcc00;添加到#Menu a:hover

  5. 摆脱#Menu li:hover

答案 1 :(得分:3)

需要添加#Menu li:hover a {color:White;}a悬停时,这会为li设置白色。

演示: http://jsfiddle.net/Nceef/

答案 2 :(得分:1)

提供此css属性:

#Menu a {display:block}
#Menu a:hover,active {color:#text-color;background:#background-color;}

答案 3 :(得分:1)

#Menu li
{
    border-bottom:1px solid #eeeeee;
}

#Menu li a:hover
{
    color:White;
    background-color:#ffcc00;
}

#Menu a:link
{
    color:#717171;
    text-decoration:none;
    display:block;
    padding: 7px 10px;
}          

此方法的唯一缺点是列表中的元素不会被正确填充。

<强>演示

http://jsfiddle.net/loktar/F6UGv/