【问题标题】:first-child pseudo class not working for <a> tagfirst-child 伪类不适用于 <a> 标记
【发布时间】:2012-08-14 10:28:37
【问题描述】:

我在让伪类使用我的代码时遇到问题。有问题的代码是放置在滑块顶部的水平有序列表。列表被拉伸以填充滑块的整个水平宽度。我通过为列表元素中包含的链接分配边框,在每个列表元素上放置了一个左边框(这样边框不会使列表太宽)。

但我想删除第一个链接的左边框,以便仅在每个列表元素之间显示边框,而不是在第一个或最后一个列表元素上显示。

当我向链接添加第一个子伪类时,问题就出现了。伪类似乎将类分配给所有链接。

这是我所拥有的:

CSS

ol.bjqs-markers{
    display:inline-block;
    list-style:none;
    margin:0;
    padding:0;
    z-index:9999; 
    width:100%; 
    position:absolute;
    top:0px;
    }


 ol.bjqs-markers li{
     display:inline;
     float:left;
     height:30px;
     width:20%;
     background:rgba(0,0,0,0.7);
     float:left;
     margin:0 0px;
}

 ol.bjqs-markers li a{
    display:block;
    font-size:22px;
    color:#FFF;
    text-align:center;
    text-decoration:none;
    height:100%;
    display:block;
    overflow:hidden;
    border-left:1px solid #F00;
}

 ol.bjqs-markers li a:first-child{
    border-left:none;
}

还有 HTML:

<ol class="bjqs-markers">
<li class="active-marker"><a href="#">Example</a></li>
<li class=""><a href="#">Example</a></li>
<li class=""><a href="#">Example</a></li>
<li class=""><a href="#">Example</a></li>
<li class=""><a href="#">Example</a></li>
</ol>

有人能告诉我为什么 a:first-child 对所有标签都应用“无”边框吗?

谢谢大家!

【问题讨论】:

  • 因为您将其应用于每个
  • 标签中的第一个 标签。

标签: html css css-selectors pseudo-class


【解决方案1】:

:first-child 的工作方式与预期一样,但您示例中的每个 A 都是第一个孩子。它是其父 LI 的第一个孩子。

你要找的是这个:

ol.bjqs-markers li:first-child a {}

【讨论】:

  • 这正是我所需要的(你们其他人也是老板)。感谢 LeJared 的解释。
【解决方案2】:

这是因为您将此伪类应用于 li 元素中的第一个链接。使用

ol.bjqs-markers a:first-child {
  border-left:none;
}

或者

ol.bjqs-markers li:first-child a {
  border-left:none;
}

【讨论】:

  • 您的第一个建议不起作用。它会产生与提问者完全相同的输出。
【解决方案3】:

也许你想做

ol.bjqs-markers li:first-child a{ 

【讨论】:

    【解决方案4】:

    这是因为您将边框应用于每个

  • 标记中的第一个 标记。试试这个:
     ol.bjqs-markers li:first-child a { }
    
  • 【讨论】:

    • 您的第二个建议不起作用。它会产生与提问者完全相同的输出。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签