【问题标题】:CSS in ajax-loaded content is not applied未应用 ajax 加载内容中的 CSS
【发布时间】:2011-09-27 01:48:10
【问题描述】:

很抱歉,如果这很明显,但我不知道还能做什么。

我正在使用fancybox jQuery 插件将 html 内容加载到模式中,但内容没有显示主文档的 css 样式。

在主文档和加载的 html 中的 <style> 标记中调用 CSS 规则,但没有。

如何解决这个问题,而不必使用 jQuery .css() 调用单独应用每个元素的 css?

谢谢

注意:我知道这可能是over-duplicated,但我仍然没有找到合适的解决方案。

编辑:Ajax 加载的内容在 iframe

【问题讨论】:

  • 模态是 div 吗?您是否正在加载包含额外 <html><body> 标记的 HTML 内容,或者其他任何会创建语法不明确的区域的内容?您是否在不知不觉中使用了div#foo > div 之类的子选择器,而您需要使用div#foo div 之类的后代选择器来定位现在可能在文档中更深的动态加载内容?
  • 我们还能看到更多代码吗?
  • 内容在iframe 中,在div 中,就像 Fancybox 那样。自发布问题以来,我已经解决了 inline 样式未呈现的问题 - 现在呈现正常。我从iframe 外部引用ids 的内容,这似乎不起作用。但我仍然有兴趣找到更优雅的解决方案(使 iframe 内容呈现为主要的 css 任务)。有问题的页面是wikaina.com/clients/irismorata.com/prensa
  • 如果是iframe,就是一个独立的html文档,有自己的样式。它不会受“外部”文档中的样式影响。

标签: css ajax fancybox


【解决方案1】:

正如您在 cmets 中提到的,您实际上是在将内容加载到 iframe 中,因此加载的内容不会受到容器文档中的样式的影响。它们是两个不同的 HTML 页面,尽管 iframe 产生了错觉。

最好的办法是将要加载的内容配置为使用与容器文档或其中的子集相同的一组样式和样式表。将其视为您网站上的另一个 HTML 页面。

【讨论】:

  • 关于如何通过 jQuery 将 outer css 附加到 iframe html 的任何建议?谢谢
  • @NaoiseGolden,您可以尝试以下方法:$('#iframe').contents().find('head').append('<link rel="stylesheet"...>')
  • 它不起作用,所以我将使用内联代码。无论如何,感谢您的 sn-p。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 2013-01-19
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多