2012-11-15 41 views
2

这是我正在努力解决的难题。我正在客户的页面中开发一个滚动界面。基本上,我不能改变文档类型,周围的元素以及已经在客户端页面中的样式表或脚本,我不得不在我的代码里面加入一小段代码。这对于web开发人员来说很常见。 现在棘手的部分是,我的块中的一些img元素实际上是由继承客户端的样式表中的CSS规则(当然,我无法删除或更改)定位的。解释为什么在这种情况下,我实际上不能使用更具体的CSS规则来弥补这一点,但这是事实。所以我的问题是:有没有办法阻止HTML元素被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"等等。

基本上,这意味着第一条通用规则强制您明确定义页面中的每个imgdisplay属性。而这很糟糕。所以我试图找到解决这种情况的手段(我的实际问题甚至比这还要严重,相信我,但这个例子更加清晰和快速)。

+1

您可以使用HTML格式将文字写入文档。或者你可以编写一个脚本来改变文档加载的css值。 – Rooster

+0

你是说你不能添加任何CSS?或者你只是不能添加自己的/编辑已有的CSS文件? –

+1

在html中没有通用的“不被X类规则作为目标”的东西。你可以编辑你的问题,并告诉我们你想避免匹配的特定选择器? – Jeroen

回答

0

您可以更改特定元素的CSS的唯一方法是修改现有的styleshits或创建更具体的新样式,并会​​超载其他样式。

而且我必须让我的小代码“合适”在里面。

一旦你做一些代码块,你可以把风格标签的HTML代码,像这样的块中,比如:

<div id="block_of_code_available_for_modification"> 
    <style type="text/css"> 
     //css code which will fix styles of your content without influencing other elements on a page. 
    </style> 
</div> 

或者,如果你正好有你需要的几个要素要修改样式,你可以使用HTML元素的style属性(一旦你可以设置修改HTML,你总是可以添加下面的东西......好吧,就像添加样式标签一样)。样式属性中的CSS属性优先级最高。除非有一些previouse风格没有!important

<img style="any css properties you need" src="..." /> 
+0

谢谢你的回答,但问题更棘手。我的编辑可能会为你澄清。谢谢 – barakadam

+0

仍然没有问题。你应该能够以某种方式在页面上注入你的代码。你可以修改每个元素,正如我从你的描述中理解的那样(“基本上,这意味着第一个通用规则迫使你明确地为页面中的每一个img定义显示属性。” - 你可以这样做,但是可以不想和我了解你),但为什么你不能只添加