html - 如何覆盖父级 :nth-of-type in child element?

标签 html css css-selectors

我使用的样式表看起来有点像这样:

.base-slider {
    width: 100%;

    .ui-state-default {
        border: none;
    }

    .ui-state-default:nth-of-type(1) {
        background: url('left-end-arrow.png');
    }

    .ui-state-default:nth-of-type(2) {
        background: url('right-end-arrow.png');
    }

    /* loads of other style stuff */
}

.secondary-slider {
    .ui-state-default {
        background: url('single-point-arrow.png');
    }
}

然后在我的 html 中我有类似的东西:

<div id="slider" class="base-slider secondary-slider">
   <a href="#" class="ui-state-default">X</a>
</div>

我遇到的问题是我在 secondary-slider 元素上看到的是“left-end-arrow.png”,而不是“single-point-arrow.png”我期待着

我猜这是因为 nth-of-type(1) 使 base-slider 选择器比子选择器更具体。它是否正确?如果是这样,是否有任何 CSS 方法可以说“忽略此元素上任何先前添加的伪类”?

最佳答案

您可以使用 :nth-of-type(n) 来覆盖以前的伪类样式,如下所示:

DEMO

 .secondary-slider .ui-state-default:nth-of-type(n) {
     background: url('single-point-arrow.png');
 }

您可以使第二个 CSS 样式更具体,因为您的容器上有两个 calsses,您可以像这样使用它们:

DEMO

 .base-slider.secondary-slider .ui-state-default {
     background: url('single-point-arrow.png');
 }

关于html - 如何覆盖父级 :nth-of-type in child element?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634645/

相关文章:

html - 在每个页面上编写页眉和页脚代码还是使用 includes 标签?

javascript - 如何转义 CSS 标识符开头的数字?

html - 选择 nth-child 跳过隐藏元素

html - 了解 CSS 选择器优先级/特异性

javascript - Blob 构造函数 Safari 问题

html - 是否可以防止 H2 标签后换行?

html - 如何让两个按钮排成一行?

ios - 图像 map 链接在 iOS 设备上不起作用

javascript - HTML5 与 Javascript 有什么区别

javascript - For循环不重置条形图数据