繁体   English   中英

我的CSS代码中的第一个孩子无法正常工作

[英]first-child is not working properly in my css code

我在使用第一个孩子时遇到问题

我有以下html代码来制作具有第一级和第二级的菜单

<ul id="navMenu"  >
    <li class="parent"><a href="index.html">Home</a> 
    </li>
    <li class="parent"><a href=".html">Products</a>
        <ul ><li><a href="">Software</a>
            <ul>
                <li><a href="">Product 1</a></li>
                <li><a href="">Product 2</a></li>
                <li><a href="">Product 3</a></li>
            </ul>
            </li>
            <li><a href="">Hardware</a>
                <ul>
                    <li><a href="">Product 1</a></li>
                    <li><a href="">Product 2</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

和以下CSS

#menuContainer{
    float: right;
}

ul#navMenu{
    margin: 25px 0 0;
    list-style: none outside none;
}

ul#navMenu li{
    float: left;
    margin: 0 0 0 0px;
    position: relative;
    z-index: 999;
}

ul#navMenu li a{
    display: block;
    padding: 5px 0px;
    font-size: 13px;
    line-height: 12px;
    background: transparent;
    color: #444;

    -webkit-transition: background-color 0.1s linear, color 0.1s linear;
    -moz-transition: background-color 0.1s linear, color 0.1s linear;
}


ul#navMenu li.parent a{
    padding-right: 23px;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: right top;
    font-family: "Lucida Grande", Tahoma, Arial, sans-serif;
    text-transform: uppercase;


}

ul#navMenu li a:hover, ul#navMenu li.current a{
    color: #CB0167 ;
    text-decoration: none;
    font-family: "Lucida Grande", Tahoma, Arial, sans-serif;

}

ul#navMenu li.parent a:hover, ul#navMenu li.current.parent a{
    background-position: right bottom;
}


/* - -- --- ---- Sub-Menu ---- --- -- - */

ul#navMenu li.parent ul{
    display: none;
    position: absolute;
    top: 25px;
    left: 0;
    width: 160px;
    margin: 0;
    padding: 0px 0 0;
    list-style: none outside none;
    overflow: visible;
    z-index: 99;
    border-top: 1px solid #eee;

}
.noJs ul#navMenu li.parent:hover ul{
    display: block;
}

ul#navMenu li.parent ul li{
    float: none;
    margin: 0;
    padding: 0;

}

ul#navMenu li.parent ul li a{
    display: block;
    padding: 7px 10px;
    color: #444;
    background: #fff;
    font-size: 11px;
    border-right: 1px solid #eee;
    border-left: 1px solid #eee;
    text-transform: none;
    background-image: url('../img/dots_menu.png');
    background-repeat: no-repeat;
}


ul#navMenu li.parent ul li:first-child a{   
    background-image: none;


    }

ul#navMenu li.parent ul li:first-child a:hover{ 
    background-image: none;
    }

ul#navMenu li.parent ul li:last-child a{    
    box-shadow: 0 1px 0 rgba(0,0,0,0.05);
    border-bottom: 1px solid #eee;  
}
ul#navMenu li.parent ul li a:hover{
    color: #CB0167 !important;
    background: #fefefe;
    background-image: url('../img/dots_menu.png');
    background-repeat: no-repeat;   
}
/* - -- --- ---- Second Level Sub-Menu ---- --- -- - */

ul#navMenu li.parent ul li ul{
    display: none;
    position: absolute;
    top: -1px;
    left: 159px;
    width: 160px;
    margin: 0;
    padding: 0 0 0 0px;
    border-top: 1px solid #eee;

}

ul#navMenu li.parent ul li ul.leftMenu{
    left: -168px;
    padding: 0 10px 0 0;
}

.noJs ul#navMenu li.parent:hover ul li ul{
    display: none;
}

.noJs ul#navMenu li.parent ul li:hover ul{
    display: block;
}

ul#navMenu li.parent ul li ul li:first-child a{ 
    background-image: none;

}
ul#navMenu li.parent ul li ul li:first-child a:hover{   
    background-image: none;

}

菜单产品正是我所需要的,还有硬件菜单,但是软件菜单不起作用,任何想法如何解决?

非常感谢 :)

使用>可以防止样式影响孙子的样式,因此请尝试更改此样式

ul#navMenu li.parent ul li:first-child  a{  

对此

ul#navMenu li.parent ul li:first-child > a{ 

ul#navMenu li.parent ul li:first-child  a:hover{    

有了这个

ul#navMenu li.parent ul li:first-child > a:hover{   

您的代码太混乱了...您可以在没有<ul><li>情况下复制相同的代码..这是home/products菜单的一小段.. home,您可以在此处找到解决方案..

http://jsfiddle.net/NMrMN/

您可以根据需要来使用必要的CSS。.但是,使用div实现这一点将使您在如何将元素放置在页面上时有更多的自由。因此,这是我对您认为的问题的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM