Angular和IE8——未在ng视图中设置HTML5元素样式
所以我正努力在IE8上工作。我已经按照上的所有步骤进行了操作,它似乎在工作——当我在视图之间切换时,我看到了IE8上呈现的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接收所有指定
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)在解析冒号转义语法时遇到了问题。