现在有这样一个样式
.markdown a {
color: #009a61;
text-decoration: none;
}
html层级大概是这样
<div class="markdown">
<a href="#/install">安装1</a>
<p><a href="#/install">安装2</a></p>
<div class="markdown-exclude">
<a href="#/install">安装3</a>
<div>
<a href="#/install">安装4</a>
</div>
</div>
</div>
我希望.markdown-exclude
之后的a
标签不被上面的css
影响请问是否能实现呢?
.markdown :not(.markdown-exclude) a {
color: #009a61;
text-decoration: none;
}
尝试这样写,但是效果不对
* **
补充
谢谢大家回答
虽然依然没有找到完美阻断的方法,但我发现怕被影响的子级a
标签都携带自定义class
,所以目前用筛选空class
的a
标签来实现
.markdown a:not([class]) {
color: #009a61;
text-decoration: none;
}
暂时达到了预期效果
3 个回答
<div class="markdown">
<a href="#/install">安装1</a>
<p><a href="#/install">安装2</a></p>
<div class="markdown-exclude">
<a href="#/install" class="exclude">安装3</a>
<div>
<a href="#/install" class="exclude">安装4</a>
</div>
</div>
</div>
.markdown :not(.exclude){
color: #009a61;
text-decoration: none;
}
可以给"markdown-exclude"下不需要加样式的a加一个类名,比如exclude,然后在.markdown :not(.exclude)里写样式。
也许可以先覆盖样式,然后针对需求写选择器:
.markdown a {
color: rgb(0,0,238); /* 重置为chrome 默认的 a 标签颜色 */
/* todo 可能需要针对各 UA 设置不同的默认样式*/
}
.markdown :not(.markdown-exclude) a {
color: #009a61; /* 引入原来的期望样式 */
text-decoration: none;
}
瑟瑟发抖为大佬评论,我有个不成熟的想法:
.markdown a {
color: #009a61;
text-decoration: none;
}
.markdown-exclude a{
color: #333;
}
撰写答案