html - <ul> 干扰 <a> 标签

标签 html css

这是我的 HTML 结构:

<div id="Syllabus" class="syl">
    <a href="#">
    </a>
    <ul class="ul_menu">
        <li><a href="#">link 1</a></li>
        <li><a href="#">link 2</a></li>
    </ul>
</div>

这是我的 CSS:

#Syllabus a {
    position:          absolute;
    top:               0px;
    left:              130px;
    width:             112px;
    height:            40px;
    background-image:  url(/Assets/Syb_but.png);
    background-repeat: no-repeat;
}

#Syllabus a:hover {
    background-image: url(/Assets/QuesPap_but_ul.png);
}

.ul_menu {
    position: relative;
    top:      44px;
    left:     43px;
    display:  none;
}

ul, li {
    margin:  auto;
    padding: 0;
}

当我在任何浏览器中查看此代码时,background-image: url(/Assets/Syb_but.png);每次由 <li> 生成标签。即 sym_but.png出现在 link1 的右侧和 link2连同第一个。

最佳答案

#Syllabus a 是后代选择器。这意味着该规则适用于#Syllabus 的所有后代 anchor 。

使用子选择器将仅选择作为#Syllabus 的直接子代的 anchor :#Syllabus > a

#Syllabus > a {
    position:          absolute;
    top:               0px;
    left:              130px;
    width:             112px;
    height:            40px;
    background-image:  url(/Assets/Syb_but.png);
    background-repeat: no-repeat;
}

#Syllabus > a:hover {
    background-image: url(/Assets/QuesPap_but_ul.png);
}

.ul_menu {
    position: relative;
    top:      44px;
    left:     43px;
    display:  none;
}

ul, li {
    margin:  auto;
    padding: 0;
}

关于html - <ul> 干扰 <a> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066774/

相关文章:

javascript - 使用 anchor 链接和 jquery 在部分之间跳转

html - YouTube视频在HTML下拉菜单上重叠

html - 防止文本破坏 flexbox 容器

css - 如何将一个长网址分成两行

html - 如何去掉带下划线的链接

html - Div 没有彼此对齐

php - 用于消息收件箱的 Jquery/Javascript gmail 风格的内容,例如使用复选框选择所有消息等

javascript - 菜单动画从顶部功能滑动

javascript - 使用 css 动态切割多边形 - 跨浏览器

css - 导航栏折叠(Ipad 菜单)不会在 Bootstrap 中自行展开