完美解决jsp页面在IE8下文本模式自动为(杂项Quirks)导致页面显示错位的情况

现象描述:最近在遇到的问题就是在在Chrome,火狐页面都正常,唯独在IE8下页面显示错位。

查找过程:经过ie8的F12调试,发现在文本模式中会自动变为 杂项Quirks,而不是变为 标准模式,所以查找相关代码。

结论:<!DOCTYPE >的三种不同格式导致的这个问题。 详细见下面

原来使用的是   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" >

现在改成 <!DOCTYPE HTML > 或者 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

改完之后问题解决。




DOCTYPE可声明三种 DTD 类型:严格版本(Strict)过渡版本(Transitional )以及框架版本(Frameset)

EgHTML 4.01 XHTML 1.0

Strict DTD

干净、免于表现层混乱、与层叠样式表(CSS)配合使用

HTML 4.01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "

http://www.w3.org/TR/html4/strict.dtd">

XHTML 1.0<!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Transitional DTD

包含 W3C 所期望移入样式表的呈现属性和元素,如果使用了不支持层叠样式表(CSS)的浏览器以至于不得不使用 HTML /XHTML的呈现特性时,使用该类型。对于一般开发者而言,若对页面没有特殊的要求且想保持兼容性,使用该类型足以。

HTML 4.01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

http://www.w3.org/TR/html4/loose.dtd">

XHTML 1.0<!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Frameset DTD

用于带有框架的文档。(HTML 4.01 中除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于Transitional DTD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "

http://www.w3.org/TR/html4/frameset.dtd">

<!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

HTML5基本上没有XHTML 1.0 Transitional严格的要求,并且简化了很多东西可以直接使用 <!DOCTYPE HTML>

HTML5 <!DOCTYPE HTML>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值