我有这个简单的HTML 5页面,也必须在Internet Explorer 8上运行良好:
<html>
<head>
<link href="<c:url value="resources/css/style.css" />" rel="stylesheet">
<link href="<c:url value="resources/css/bootstrap.css" />" rel="stylesheet">
<link href="<c:url value="resources/css/bootstrap-theme.css" />" rel="stylesheet">
<title>Login Page</title>
</head>
<header>
<div class="container">
<img src="resources/img/logo2.png" class="logo">
<div id="login-box">
<c:if test="${not empty error}">
<div class="error">${error}</div>
</c:if>
<form class="form-inline" name='loginForm' action="<c:url value='/j_spring_security_check' />" method='POST'>
<div class="form-group">
<label class="sr-only" for="exampleInputEmail3">Email address</label>
<input type='text' name='username' class="form-control" id="exampleInputEmail3" placeholder="Nome Utente">
</div>
<div class="form-group">
<label class="sr-only" for="exampleInputPassword3">Password</label>
<input type='password' name='password' class="form-control" id="exampleInputPassword3" placeholder="Password">
</div>
<!-- <button type="submit" class="btn btn-default">Sign in</button> -->
<input id="ricorda" name="submit" type="submit" class="btn btn-default" value="login" />
<br>
<div class="checkbox">
<label>
<input type="checkbox"> Remember me
</label>
</div>
</form>
</div>
</div>
</header>
<body onload='document.loginForm.username.focus();'>
<jsp:include page="header.jsp"/>
<div id="intestazione">
<h1 align="center">WIFI e PNSD</h1>
</div>
<div id="login-box">
<h3>Accesso al sistema</h3>
</div>
<jsp:include page="footer.jsp"/>
<script type="text/javascript" src="webjars/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="webjars/jquery/2.1.1/jquery.min.js"></script>
</body>
</html>
问题是,当我尝试将其打开到IE8时,它不会将HTML5标记看作标题标记。
所以我找到了这个解决方案:http://tatiyants.com/how-to-get-ie8-to-support-html5-tags-and-web-fonts/
指定在我的页面中添加这些行来解决问题:
<!--[if lt IE 9]>
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
</script>
<![endif]-->
但究竟我将这些线放在上一页中?这些线究竟是什么?
TNX
AndreaNobili,请添加你的html文件头:
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js">
</script>
<![endif]-->
现在即8浏览器支持您的所有html5元素。
使用HTML5 Shiv将兼容性添加回旧版浏览器。
您使用和发布的解决方案是IE conditional comment,并且您的示例将强制使用低于9的任何版本的IE来渲染,因此识别这些元素。
但是您的页面存在一些问题。您缺少q5xswpoi标记上方的HTML5 doctype:<!DOCTYPE html>
。您可能还需要将<html>
添加到CSS中的HTML5元素中。
您询问应该在何处使用条件注释。这可以进入你的display: block
部分或在结束的<head>
标签之上。为了确保没有</body>
或任何IE怪癖,我建议将它放在FOUC标签内。
或者,最简单的选择是使用HTML5 shiv的<head>
。
由于此问题中发布的链接不再起作用,因此在任何样式表之后的head部分中添加以下代码。
Lalji Tadhani's recommendation
或者,转到<!--[if lt IE 9]>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js">
</script>
src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js">
</script>
<![endif]-->
并将文件下载到您的项目中。