【发布时间】:2011-10-27 04:37:17
【问题描述】:
如果您查看 github 上的 this CssToInlineStyles class。它本质上是试图使 CSS 全部内联。但是,当涉及到已经内联的 CSS 被样式块中的定义覆盖时,它的优先级完全错误!
我认为在line 312 上,我需要设置一个条件,以确保已经存在的内联样式永远不会被 CSS 属性中的任何定义覆盖。不过好像没那么容易!
有什么想法吗?我试过联系班主任,没有回复。如果我解决了这个问题,我会在 github 上提出拉取请求。
更新
如果您在样式块中有以下内容:
p{font-family:Arial;font-size:0.9em;color:#53534a;}
.webv {font-size: 10px; padding:5px 0 0 150px}
如果你有这样的 p 标签:
<p class="webv" >Testing</p>
那么.webv这个类需要在font-size方面生效。
更新 2
Hakre 的解决方案效果很好,但有一种情况它不起作用。例如,如果你有这个样式块:
*{padding:0;margin:0;}
h1{padding-bottom:10px;}
h1 的填充仍然是 0,第二个 h1 没有接管它应该的!所以它看起来像这样:
<h1 style="padding:0; margin:0;">Test</h1>
【问题讨论】:
-
请为更新 2 的 h1 元素添加样式属性输出。
-
我添加了之后的样子。它只是完全忽略了 h1 定义中的
padding-bottom!顺便说一句,由于修复了其他问题,我在第 312 行之后使用了$properties = array_reverse($properties, true);。