Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular和IE8——未在ng视图中设置HTML5元素样式_Html_Angularjs_Internet Explorer 8_Angular Template - Fatal编程技术网

Angular和IE8——未在ng视图中设置HTML5元素样式

Angular和IE8——未在ng视图中设置HTML5元素样式,html,angularjs,internet-explorer-8,angular-template,Html,Angularjs,Internet Explorer 8,Angular Template,所以我正努力在IE8上工作。我已经按照上的所有步骤进行了操作,它似乎在工作——当我在视图之间切换时,我看到了IE8上呈现的ng view的内容 问题是我在inspector中实际上看不到任何内容: 。。它只是一个空的ng视图标记。我可以看到页面上的所有内容,但在ng view中没有任何样式应用于任何内容 我不确定这是一个角度问题还是HTML5问题。我已经添加了ng视图之外的和HTML5元素,它们的样式很好 编辑 我已经确定问题在于HTML5元素和未在ng视图中设置样式,而简单div接收所有指定

所以我正努力在IE8上工作。我已经按照上的所有步骤进行了操作,它似乎在工作——当我在视图之间切换时,我看到了IE8上呈现的
ng view
的内容

问题是我在inspector中实际上看不到任何内容:

。。它只是一个空的ng视图标记。我可以看到页面上的所有内容,但在
ng view
中没有任何样式应用于任何内容

我不确定这是一个角度问题还是HTML5问题。我已经添加了
ng视图
之外的和HTML5元素,它们的样式很好

编辑


我已经确定问题在于HTML5元素
未在
ng视图中设置样式,而简单div接收所有指定的样式。在
ng视图
之外,
的样式很好。

我能够通过根据这里给出的答案有条件地将jQuery包含在IE8中来解决这个问题。

这里的问题是,即使您根据IE指南添加名称空间和/或预创建元素,angular core的某些部分也不会通过正常的jQuery元素创建-即使使用完整的jQuery而不是angular的jQLite,我也一直存在这个问题,但我听说它可以解决大多数人的问题。使用HTML5垫片本身也不能解决这个问题

但即便如此,如果可能的话,我还是不想用jQuery替代它,在这种情况下,您还需要执行以下操作以获得一个完全有效的解决方案:

  • 为块级HTML5元素添加重置样式,使其
    display:block正确
  • 在CSS中,以带有冒号前缀的HTML5元素为目标。您需要转义这些,它将如下所示:
    头,\3A头{/*…*/}
    。请注意,转义序列和选择器的其余部分之间有一个空格
  • 如果您使用的是jQuery,则需要使用1.10.x版本或条件标记在IE8中切换到它
是否在模板中导入
标记?@charlietfl我的所有样式表都在页面的
中定义,包括应应用于模板的样式表。如果IE8中包含jQuery?我有同样的问题,但不知道如何解决它。。。在Angular之前或之后包含它?jQuery需要包含在
中。在关闭
之前,我已经加入了angularjs。后来在Windows XP上的ie8上进行了测试,我可以确认添加
\:section,\:article。。。{display:block}
为我解决了这个问题。为了向读者澄清:在样式表中使用
\3A header
\:header
是完全等效的,我更喜欢十六进制代码格式,因为我的预处理器(在本例中是LESS)在解析冒号转义语法时遇到了问题。