这是我试图解决的一个困难。我正在客户页面内开发滚动界面。基本上,我无法更改文档类型、周围元素以及已经在客户端页面中的样式表或脚本,我必须让我的小代码块“适合”其中。这对于 Web 开发人员来说很常见。现在棘手的部分是我的块中的一些 img 元素实际上被继承的客户端样式表中的 CSS 规则定位(当然,我不能删除或更改)。解释为什么在这种情况下我实际上不能自己使用更具体的 CSS 规则来弥补这一点太长了,但这是事实。所以我的问题是:除了创建另一个规则或删除规则之外,有没有办法防止 HTML 元素成为 CSS 规则的目标?困难在于像这样的规则
.containter1 .containter3 { ... }
将针对内部的一个元素:
<div class="container1">
<div class="containter2">
<div class="containter3">Element
...
页面内的元素不会为 CSS 规则制造“墙”,这些规则会“跳过”容器以到达目标元素。所以像这样的规则
img { ... }
将针对任何 img 标签。我知道弥补这一点的唯一方法是创建一个更具体的 CSS 规则,针对要保护的精确 img。但我不能在这里这样做。有没有办法在不创建 CSS 规则的情况下仅通过添加 HTML 来获得相同的结果?
/ * 编辑澄清* /
我知道 CSS 规则、特异性、继承等。我的问题更务实。考虑这个例子来澄清问题:假设您有一个您无法触摸的客户样式表,它定义了以下一般规则:
img { display:none; }
问题是您不能设置相应的通用规则来做相反的事情,例如:
img { display:not-none; }
因为没有对立面这样的事情。的反义词"none"
可以是"inline"
, "block"
, "inline-block"
, 等等。
所以基本上,这意味着第一个通用规则会强制您为页面中display
的每一个明确定义属性img
。这很糟糕。所以我试图找到一个破解方法来解决这样的情况(我的实际问题比这更糟糕,相信我,但这个例子更清晰,更容易解释)。