如何排除CSS格式?
可能的重复项:如何排除CSS格式?,css,Css,可能的重复项: 我有这样的CSS .div1 img { // ... } .myimg { // ... } 我的HTML代码是这样的 <div class="div1"> ... <img src="..." class="myimg"> // image html ... </div> ... //图像html ... .div1 img中定义的css格式显然应用于图像html代码。然而,我实际上不
我有这样的CSS
.div1 img {
// ...
}
.myimg {
// ...
}
我的HTML代码是这样的
<div class="div1">
...
<img src="..." class="myimg"> // image html
...
</div>
...
//图像html
...
.div1 img
中定义的css格式显然应用于图像html代码。然而,我实际上不希望它发生。我该怎么做才能使图像html代码不受“.div1 img”影响?我不想修改div1 img
或相关html代码的内容,因为它已经在其他地方使用过(这是一个我不想弄乱的模板代码)
另外,我无法删除或修改
,因为周围还有其他模板代码
谢谢。您可以:
.div1 img:not(.myimg) {
// ...
}
:未解释选择器您有两个选项:
.myimg
中的样式覆盖.div1 img
中定义的所有样式.div1 img:not(.myimg)
你需要中和你给“.div1 img”的所有样式,例如,如果你在那里说“width:100px”,你需要在另一个里面说“width:auto” 虽然如果你在第一组中有很多规则,那么这样会非常脏,你需要更改布局。有一点不错的方法可以奏效,但不幸的是,它不适用于所有浏览器 一个确定的方法是在子类
.mying
中重新定义所有.div1
样式,以便覆盖父类
下面是JSFIDLE中的一个小演示:
把它弄得乱七八糟,看看什么对你最好 如果你在class.div1的容器div中有img标记,它们当然会得到你在
.div1 img
中定义的样式,但是如果你想让该div中8个图像中的2个有另一个样式(我相信这就是为什么你制作class.myimg
),你需要把!重要信息在.myimg
中定义的样式之后,如下所示:
.div1 img
{
height: 125px;
width: 125px;
}
.myimg
{
height: 150px !important;
width: 150px !important;
}
这只是在你没有使用CSS 3.0的情况下,是的,“非选择器”可以工作,但我更喜欢一些同时支持IE的解决方案。所以我想覆盖它可能是唯一的解决方案