如何阻止CSS规则应用于特定元素
How to stop a CSS rule from applying to a specific element
我有一个这样的CSS规则:
a {
line-height: 50px;
display: inline-block;
text-decoration: none;
font-size: 16px;
color: white;
}
这个HTML:
<a href="/test">test</a>
如何阻止CSS规则只应用于这个元素?
如果一个选择器匹配一个元素,那么它就匹配这个元素。
你有三个选择:
- 改变选择器使它不匹配
- 更改元素,使其不匹配
- 编写另一个CSS规则集,该规则集在级联中进一步下降,并用新值覆盖第一个规则集中你不喜欢的每个属性。
你可以在CSS声明中使用类选择器(.foo
)而不是元素选择器(a
)。
所以我们不这样做:
CSSa {
line-height: 50px;
display: inline-block;
text-decoration: none;
font-size: 16px;
color: white;
}
HTML <a href="/test">test</a>
你可以这样做:
CSS.foo {
line-height: 50px;
display: inline-block;
text-decoration: none;
font-size: 16px;
color: white;
}
HTML <a class="foo" href="/test">test</a>
当你不希望你的a
元素有这些样式,只需省略类或应用一个不同的类,你可能已经声明。
内联样式
另一个解决你的问题,但不符合最佳实践(在几个层面上)的选择是使用内联样式。
既然你说你不希望外部(或嵌入)样式应用,因此你只希望a
样式是不同的。你可以这样完成你的目标:
- 保持原来的CSS声明不变
- 修改HTML:
<a href="/test" style="your preferred styles here">test</a>
在这种情况下,内联样式将优先于其他样式。
注意内联样式优先于外部和嵌入样式,除非外部和嵌入声明包含!important
,而内联样式不包含!important
。
感谢大家的建议,但下面的答案对我来说非常有效:
a.none {
line-height: inherit;
display: inherit;
text-decoration: inherit;
font-size: inherit;
color: inherit;
}
创建这个类,然后像这样将它附加到a标签上:
<a class="none" href="/test">test</a>
之前有人发了这个,然后删掉了,我不知道为什么,但是谢谢你!
相关文章:
- 将自定义javascript函数应用于iframe元素
- CSS: jQuery:将右边距应用于 li 元素,除了每个第 4 个子元素(仅适用于 display:block 的元
- jQuery将“x”号图像元素应用于SRC和类
- 将 css 样式应用于 javascript 调用中的 :after 伪元素
- 如何将CSS应用于Javascript添加的元素
- 您能否通过JavaScript将媒体查询特定样式应用于HTML元素
- 可以/应该将多个自定义指令应用于Angular中的同一元素
- 聚合物:将动画应用于dom重复模板中的dom元素
- 将点击/悬停函数应用于JS中的多个元素类
- 将jQuery应用于ajax加载的HTML元素
- 当将.click()应用于li元素时,应该使用什么选择器
- 将jquery插件应用于dom元素
- 将显示功能应用于ajax成功创建的元素
- 如何将工具提示应用于d3嵌套层(流图)中的元素
- 将焦点样式事件应用于UL标记元素
- 将jQuery动画应用于Angular JS在加载时动态加载的视图中的元素
- 有没有一种更优雅的方法将 css 应用于“除了这个元素之外的所有元素”
- 如何用.not改变选择器来应用于dom元素
- 全局样式未应用于Chrome 36中Polymer元素中的Shadow DOM子项
- 将数据元素应用于“数据表”单元格