首页 > 解决方案 > :not css 选择器未按预期工作

问题描述

我想根据body标签上的dir rtl属性应用一些css

我早期的实现低于一个不起作用的

:not([dir="rtl"]) nav > ul > li:last-child a {
    padding-right: 0;
    margin-right: 0;
}

通过提到身体标签它工作正常,我无法得到相同的原因。任何帮助将不胜感激。

body:not([dir="rtl"]) nav > ul > li:last-child a {
    padding-right: 0;
    margin-right: 0;
}

标签: css

解决方案


:not([dir="rtl"])将影响任何没有 no 的元素[dir="rtl"],意味着即使身体有它,如果里面的任何元素没有它,它仍然会应用于子 li。即使元素扩展了样式,它也会应用到它,因为它没有dir带有 value的属性rtl

当你添加body选择器时,css只有在body没有这个属性的时候才会生效,但是如果有,其他元素没有这个属性是不会生效的。


推荐阅读