【问题标题】:CSS UL LI Vertical MenuCSS UL LI 垂直菜单
【发布时间】:2011-07-06 13:54:47
【问题描述】:
<%@ 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 菜单(问题标签用户......)

任何帮助将不胜感激。

【问题讨论】:

    标签: html css menu html-lists


    【解决方案1】:

    我会这样做:

    1. 将您的&lt;a&gt; 标签设置为display:block

    2. 从您的&lt;li&gt; 中删除填充(改成padding:0px

    3. 将填充重新添加到您的&lt;a&gt; 标签padding:7px 10px 7px 10px;

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

    5. 摆脱#Menu li:hover

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        给这个css属性:

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

        【讨论】:

        • 其他解决方案的问题是,即使无法点击链接,链接也会显示为悬停状态,从而导致用户体验不佳。
        【解决方案4】:
        #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/

        【讨论】:

          猜你喜欢
          • 2018-05-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-15
          • 2012-08-15
          • 1970-01-01
          相关资源
          最近更新 更多