Html CSS下拉列表<;ul>&书信电报;李>;每个级别的菜单大小不同

Html CSS下拉列表<;ul>&书信电报;李>;每个级别的菜单大小不同,html,css,Html,Css,您好,我不知道如何更改CSS菜单子项的大小(父项具有图像背景,子项应具有背景色)。 我试过这样的方法: ul > li > a:hover { display:inline-block; background:#000; float:left; width:120px; height:25px; } 但它与其他元素混合在一起。你能帮我弄清楚吗 HTML: 非常感谢您事先的帮助 要向子菜单添加背景色,请执行以下操作: ul li ul li {

您好,我不知道如何更改CSS菜单子项的大小(父项具有图像背景,子项应具有背景色)。 我试过这样的方法:

ul > li > a:hover {
    display:inline-block;
    background:#000;
    float:left;
    width:120px;
    height:25px;
}
但它与其他元素混合在一起。你能帮我弄清楚吗

HTML:


非常感谢您事先的帮助

要向子菜单添加背景色,请执行以下操作:

ul li ul li {
    // rules
}
您还可以将类添加到列表项中,以使其更易于管理。例如,您可以向子菜单的ul添加一个类:

<li><a href="#">Parent2</a>
        <ul class="sub-menu">
            <li><a href="#">Child1</a></li>
            <li><a href="#">Child2</a></li>
            <li><a href="#">Child3</a></li>
        </ul>
    </li>

要向子菜单添加背景色,请执行以下操作:

ul li ul li {
    // rules
}
您还可以将类添加到列表项中,以使其更易于管理。例如,您可以向子菜单的ul添加一个类:

<li><a href="#">Parent2</a>
        <ul class="sub-menu">
            <li><a href="#">Child1</a></li>
            <li><a href="#">Child2</a></li>
            <li><a href="#">Child3</a></li>
        </ul>
    </li>

保持相同的宽度很好,这样可以避免这种奇怪的移动

试试这个

ul li ul li a:hover {
    display:block;
    background:#000;
    float:left;
    width:178px;
    height:25px;
}

保持相同的宽度很好,这样可以避免这种奇怪的移动

试试这个

ul li ul li a:hover {
    display:block;
    background:#000;
    float:left;
    width:178px;
    height:25px;
}

我不知道您希望结果看起来如何,但您也可以在css中使用+选择器,如下所示:

ul > li > a:hover+ {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }
ul > li > a:hover+ul {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }
在a:hover之后看到的+选择器意味着将选择a:hover标记后面的下一个元素,在这种情况下,它将是ul

如果希望ul是一个列表而不是像这样的平面列表,也可以使用+ul指定元素:

ul > li > a:hover+ {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }
ul > li > a:hover+ul {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }

这样,您知道您只会影响悬停元素旁边的元素,我不知道您希望结果看起来如何,但您也可以在css中使用+选择器,如下所示:

ul > li > a:hover+ {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }
ul > li > a:hover+ul {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }
在a:hover之后看到的+选择器意味着将选择a:hover标记后面的下一个元素,在这种情况下,它将是ul

如果希望ul是一个列表而不是像这样的平面列表,也可以使用+ul指定元素:

ul > li > a:hover+ {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }
ul > li > a:hover+ul {
        display:inline-block;
        background:#000;
        float:left;
        width:120px;
        height:25px;
    }

这样您就知道您只会影响悬停元素旁边的元素

希望以下更改对您有效。这是你的电话号码。以下是您的css chagnes

#menu {
    /*position:absolute;
    top:0;
    left:0px;*/
    width:900px;
    height:22px;
    background-color:#000;
}
ul {
    font-family: Arial, Verdana;
    font-size: 14px;
    line-height:22px;
    margin: 0;
    padding: 0;
    list-style: none;
    text-align:center;
}
ul li {
    display: block;
    float: left;
    position:relative;
}
ul li a {
    display: block;
    text-decoration: none;
    color: #ffffff;
    /*padding: 5px 15px 5px 15px;*/
    background-image: url(../images/menu1.png);
    white-space: nowrap;
    width:178px;
    line-height:22px;
}
ul li:hover a { 
    background: #BBBBBB;
}
ul li ul {
    display: none;
    widht:200px;
    position:absolute;
    left:0;
    top:22px;
}
ul li ul li {
    float: none;
    font-size: 11px;
}
ul li ul li a {
  background: #3b3b3b;
    background-image:none!important;
}
ul li ul li a:hover {
    background: #CCC;
}
ul li:hover ul {
    display: block;
    position: absolute;
    left:0px;
}

希望以下改变对你有用。这是你的电话号码。以下是您的css chagnes

#menu {
    /*position:absolute;
    top:0;
    left:0px;*/
    width:900px;
    height:22px;
    background-color:#000;
}
ul {
    font-family: Arial, Verdana;
    font-size: 14px;
    line-height:22px;
    margin: 0;
    padding: 0;
    list-style: none;
    text-align:center;
}
ul li {
    display: block;
    float: left;
    position:relative;
}
ul li a {
    display: block;
    text-decoration: none;
    color: #ffffff;
    /*padding: 5px 15px 5px 15px;*/
    background-image: url(../images/menu1.png);
    white-space: nowrap;
    width:178px;
    line-height:22px;
}
ul li:hover a { 
    background: #BBBBBB;
}
ul li ul {
    display: none;
    widht:200px;
    position:absolute;
    left:0;
    top:22px;
}
ul li ul li {
    float: none;
    font-size: 11px;
}
ul li ul li a {
  background: #3b3b3b;
    background-image:none!important;
}
ul li ul li a:hover {
    background: #CCC;
}
ul li:hover ul {
    display: block;
    position: absolute;
    left:0px;
}
解决方案

ul > li:hover > li > a {
    display:inline-block;
    background:#000;
    float:left;
    width:120px;
    height:25px;
}

它可以根据需要

ul > li:hover  li   a {  }
解决方案

ul > li:hover > li > a {
    display:inline-block;
    background:#000;
    float:left;
    width:120px;
    height:25px;
}

它可以根据需要

ul > li:hover  li   a {  }

a:hover+
不会选择下一个元素,
a:hover+*
会。
a:hover+
不会选择下一个元素,
a:hover+*
会。这对我很有效,还有一件事。我如何将Child1、2、3放在彼此旁边,而不是作为常规列表放在彼此下面?只需检查以下链接,我已经更正了css。这对我来说很好,还有一件事。如何将Child1、2、3放在彼此的旁边,而不是作为常规列表放在彼此的下面?只需检查以下链接,我已经更正了css