-1

比如说,一个 HTML 文件包含以下元素:

<div class="mydiv">  
    <img src="img.jpg"/>  
</div> 

我想知道以编程方式将其转换为是否安全

<img class="mydiv" src="img.jpg" />  

也就是说,将父级的类添加到子元素中并撕掉父级本身。当类存在 CSS 规则时,两个版本的 HTML 代码是否产生相同的呈现?如果没有,哪些情况实际上没有发生?

注意:
- 父级仅具有类的特征,它没有其他有意义的属性
- CSS 文件不能更改
- 在加载 HTML 后由 javascript 执行转换
- 目标是摆脱父级,但所有 CSS 规则渲染相同

4

3 回答 3

0

不,不是所有的 CSS 声明都向下级联。哪些级联以及它们如何级联取决于浏览器。

于 2012-10-17T16:01:14.763 回答
0

首先解决问题的标题:类永远不会被继承。CSS规则可以。

有几个一般情况可能会出错。

可能存在仅在某些条件下适用的规则(例如margin: auto,根据 的值具有不同的效果display(对于不同的元素具有不同的默认值)。

选择器可能更具体.mydiv。可能有div.mydiv.mydiv img

于 2012-10-17T16:03:12.610 回答
0

如果该类在 DIV 中的原因仅仅是为了定义图像独有的属性,那么是的,您可以换掉并且行为应该是相同的。你还必须更新你的 CSS 以确保你处理这个新的类分配。

然而。确保没有 DIV 分配来建立上下文。也就是说,HTML 中可能还有其他 IMG 现在可以被新的类分配覆盖。

div.mydiv>img 是比 img.mydiv 更具体的场景

此外,该父 div 可能被另一个范围更广的类似 CSS 规则覆盖。

于 2012-10-17T16:08:23.967 回答