[英]HTML using CSS3 displays correctly in IE11 but not when render via Tomcat 7
这是很奇怪的东西,我希望有人能帮助我了解它为什么会发生以及如何解决。
我的环境是Windows 7 64-bit
, IE 11
和Tomcat 7.0.47
。
我有一个文件index2.html ,它使用CSS3
功能div {box-sizing: border-box;}
。 这是整个文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
html, body {
height: 100%;
}
body {
margin:0;
}
div {
box-sizing: border-box;
}
#div_header {
width: 100%;
height: 20%;
border: 1px solid blue;
}
#div_middle {
width: 100%;
height: 70%;
border: 1px solid red;
}
#div_footer {
width: 100%;
height: 10%;
border: 1px solid green;
}
</style>
</head>
<body>
<div id="div_header">
</div>
<div id="div_middle">
</div>
<div id="div_footer">
</div>
</body>
</html>
当我在IE 11
打开index2.html时,它正确显示的方式与JSFIDDLE的显示方式完全相同。 如您所见,页面中没有垂直和水平滚动条。
现在,在Tomcat 7中,我部署了一个名为srhtest的简单Web应用程序。 结构如下:
srhtest\META-INF\MANIFEST.MF
srhtest\WEB-INF\classes (empty directory)
srhtest\WEB-INF\lib (empty directory)
srhtest\WEB-INF\web.xml
srhtest\index2.html
MANIFEST.MF文件的内容是:
Manifest-Version: 1.0
web.xml文件的内容为:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<welcome-file-list>
<welcome-file>index2.html</welcome-file>
</welcome-file-list>
</web-app>
我启动Tomcat,然后打开IE 11
然后转到http:// localhost:8080 / srhtest
但是页面显示不正确,完全类似于删除CSS3
时JSFIDDLE2的显示方式。 如您所见,页面中同时存在垂直和水平滚动条。 我究竟做错了什么?
box-sizing属性具有两种属性:
这是CSS标准指定的初始值和默认值。 测量的宽度和高度属性仅包括内容,不包括填充,边框或边距。 注意:填充,边框和边距将在框外。例如,如果应用此代码,
.box {
width: 200px;
border: 10px solid red;
}
这在浏览器中呈现为总宽度:220px 。
因此,元素的尺寸计算为:宽度=内容的宽度,高度=内容的高度(不包括border和padding的值)。
width和height属性包括填充和边框,但不包括边距。 请注意,填充和边框将在框内,例如
.box {
box-sizing: border-box;
width: 200px;
border: 10px solid red;
}
这在浏览器中呈现为总宽度:200px 。
此处的尺寸计算为:宽度=边框+填充+内容的宽度,高度=边框+填充+内容的高度。
因此,如果您删除此代码
div {
box-sizing: border-box;
}
默认的box-sizing为content-box,并根据content-box规则呈现给浏览器宽度和高度。
也可以在该链接上查看更多说明: 框大小
听起来您的文档正在以Compatibility Mode
显示,很遗憾,这是本地Intranet站点的默认设置,并且将适用于您的特定用法(假定您的开发箱为: domain-joined
),因为您是从以下位置检索文档的: http://localhost
。
您可以使用以下命令确认是否为真:
Developer Tools
。 Emulation
屏幕。 如果文档模式值为: IE11
,那么我的猜测是错误的; 但是,如果IE
处于Compatibility Mode
,它将采用IE7
行为:
<!DOCTYPE>
声明(您的声明确实如此),则应使用IE7
文档模式。 <!DOCTYPE>
声明之前的隐藏字符或换行符触发),将使用IE5 Quirks
文档模式。 更新本地Intranet区域中的网站的IE
处理:
这应该解决您正在描述的行为。 如果您遇到其他人要访问位于Local Intranet Zone
的开发服务器的情况,请给我发送一条评论消息,因为您可以采取一些其他步骤来为这些用户解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.