我对css有点问题。
我有一个css,它是由另一个里面的代码生成的。我无法更改css文件。
我需要去掉这种风格。有可能吗?
<div class="1">
#Generated by code
<div class="2" style="xxxxxxxx">
This text is bold now. Cause of the style. I need normal!
</div>
#Generated by code
</div>
有什么我能做的吗??
谢谢:)
为什么不使用javascript?
<body onload="myFunction()">
<div class="1">
#Generated by code
<div class="2" style="xxxxxxxx">
This text is bold now. Cause of the style. I need normal!
</div>
#Generated by code
</div>
<script>
function MyFunction
{
document.getElementsByClassName("2").style.blabla;
}
</script>
甚至使用
<style>
.2
{
width:50px;
}
</style>
使用前面提到的JavaScript是实现所需行为的好方法。但根据MDN
document.getElementsByClassName()
返回一个类似数组的结构。因此正确的语法将是
document.getElementsByClassName('2')[0].style.fontWeight = 'normal';
或使用完全删除样式属性
document.getElementsByClassName('2')[0].removeAttribute('style');
您可以创建另一个CSS文件,并尝试为应用于div
的样式设置更高的specificity
。如果将ID
设置为div
,并应用新CSS样式表中的样式,则它具有最高的specificity
。
如果你能做到的话,尽量避免使用!important exception
,为div
设置更高的新CSS
风格特异性。使用!important exception
被认为是一种糟糕的做法,因为他们把它放在了网页上:
使用!重要的是不好的做法,应该避免,因为它会破坏样式表中的自然级联,从而使调试更加困难。
问题是内联样式覆盖了外部样式表的所有样式,因此您可能不得不在此处使用!important exception
。
添加到元素的内联样式(例如,style="font-weight:bold")总是覆盖外部样式表中的任何样式,因此可以被认为具有最高的特异性。
您可以使用!important
进行以下操作:
<div class="_1">
#Generated by code
<div class="_2" style="font-weight: normal !important;">
This text is bold now. Cause of the style. I need normal!
</div>
#Generated by code
</div>
或者你可以创建一个新的CSS文件,将其包含到你的模板中。在你的CSS中,你放了一些类似的东西:
._1 > ._2 {
font-weight: normal !important;
}
请注意,标识符不能以数字开头,所以必须在其上加一个字母或下划线,就像CSS中的
_1
一样,它会是._1 { }
吗。阅读这篇文章:CSS标识符允许的字符根据下面@Error404的评论:内联样式上不需要
!important
异常。正如MDN所说,添加到元素中的内联样式(例如,style="font-weight:bold")总是覆盖外部样式表中的任何样式,因此可以被认为具有最高的特异性。阅读更多:https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity#The_!important_exception。还有一个来自@Error404的答案,其中包含有关此问题的更多详细信息(此答案下方或上方)
请参阅工作小提琴:https://jsfiddle.net/o24jww1b/1/
您可以使用jquery来完成此操作使用这个
<script>
$(document).ready(function(){
$("._2").css("font-size", "normal");
});
</script>