Angular和IE8 - HTML5元素未在ng-view中设置样式

时间:2013-12-12 23:05:26

标签: html5 angularjs internet-explorer-8 angular-template

所以我试图在IE8上进行角度处理。我已经按照http://docs.angularjs.org/guide/ie上的所有步骤操作了它似乎正在工作 - 当我在视图之间切换时,我看到在IE8上呈现ng-view的内容。

问题在于我实际上没有在检查器中看到任何内容:

enter image description here

..它只是一个空的ng-view标签。我可以查看页面上的所有内容,但没有样式应用于ng-view内的任何内容。

我不确定这是一个角度问题还是HTML5问题。我添加ng-view以及<section>之外的HTML5元素的样式很好。

修改

我已经确定问题是HTML5元素。 <article>ng-view未在ng-view内设置样式,而简单的div则接收所有指定的样式。在<nav>之外,<header>和{{1}}的样式设置得很好。

2 个答案:

答案 0 :(得分:1)

我能够根据这里给出的答案有条件地在IE8中包含jQuery来解决这个问题https://stackoverflow.com/a/18317832/2026098

答案 1 :(得分:1)

这里的问题是,即使您根据IE指南添加命名空间和/或预创建元素,角度核心的某些部分也不会通过正常的jQuery元素创建 - 我已经拥有了即使使用完整的jQuery而不是Angular的jQLite,问题仍然存在,但我听说这可以解决大多数人的问题。使用HTML5填充程序本身也无法解决问题。

但即便如此,如果可能的话,我宁愿 替换jQuery,在这种情况下,您还需要执行以下操作才能获得完整的解决方案:

  • 为块级HTML5元素添加重置样式,以便它们display: block;正确
  • 在CSS中使用冒号前缀定位HTML5元素。你需要逃避这些,它将如下所示:header, \3A header { /*...*/ }。请注意,转义序列与选择器的其余部分之间存在空格。
  • 如果 使用jQuery,则需要使用1.10.x版本或条件标签在IE8中切换到它。