2011-03-22 73 views
2

我有一个包含xhtml片段的foreignObject元素的内联svg。但是,由于与svg及其父文档(即jqtouch库)中的js设置的样式相互串扰,xhtml内容的样式不正确。因此我想将浏览器的默认样式应用于我的foreignObject的孩子。因此我需要引用浏览器的默认样式表。有人知道怎么做这个吗 ?对于safari,我可能可以从webkit资源中获取它,但我更喜欢一种不需要在浏览器升级后跟踪修改的解决方案。inline svg - 如何将浏览器默认样式应用于xhtml中的foreignObject?

使用原生svg文本元素不是一个选项,因为自动换行是强制性的。 既不是...

  • 将内联svg子树移出顶级css范围。
  • 修改违规顶层CSS (事实上,修改每一个CSS选择器,并加入了独特的CSS类外 每个元素的foreignObject S可能会发生成为一种选择,如果可以通过编程,高效地完成。 希望有一个更优雅的解决方案)

平台: Safari浏览器5.0.3(7533.19.4) 赢得XP SP3

提前感谢你的努力

最好的问候,卡斯滕

+0

请注意,即使你包括UA样式表,你仍然不会是整个文档的默认样式将仅应用于重启;您需要明确地将每种样式硬重置回基准。 – Phrogz 2011-03-23 21:23:05

+1

我暂时从webkit源中引用了一个克隆的默认样式表,其中我在所有选择器前面加上了'foreignObject'。至少它的作品... – collapsar 2011-03-25 00:10:37

回答

0

我想如果你嵌入XHTML与头主体等

+0

不幸的是,他们没有。 dom将嵌入式xhtml视为一个普通的子树,无论它是一个完整的文档还是一个片段。 – collapsar 2011-03-25 00:08:19

+0

在这种情况下,您可以尝试将自定义强制重置css应用于异物儿童 – 2011-03-26 16:18:14