完美解决jsp页面在IE8下文本模式自动为(杂项Quirks)导致页面显示错位的情况
2016-07-15 18:15
411 查看
现象描述:最近在遇到的问题就是在在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)。
Eg:HTML
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>
查找过程:经过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)。
Eg:HTML
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>
相关文章推荐
- 图片的旋转动画
- vue-cli创建项目
- 自动计算UILabel的宽度或则高度
- 1. Two Sum QuestionEditorial Solution My Submissions
- mui几种页面跳转方式对比
- 判断UItextFiled只包含小数点后一位且是5
- UESTC 982质因子分解
- Android UI(EditText)详解
- 当前视图是在UIWindow上,所以需要拿到主window,判断是UINavigationController的子类再选中第一个TabBar,否则不处理
- 在android中如何用线程来更新UI
- 设计模式之Builder模式
- UITableView的代理方法viewForHeaderInSection不执行的原因
- IBM CleanQuest使用方法
- hdu 1159 Common Subsequence
- View requires API level 14 (current min is 8): <GridLayout>
- discuz X3.2 开启QQ互联后,点击登录以后报错:(1054) Unknown column 'conuintoken' in 'field list'
- Cf Round #361 (Div. 2) 689D. Friends and Subsequences
- UITableViewCell 中的单选控制 UITableViewCellAccessoryCheckmark
- org.openqa.selenium.remote.SessionNotFoundException: The FirefoxDriver cannot be used after quit() was called.
- Android进阶UI之使用TextInputLayout创建一个登陆界面