我的应用程序存在问题,因为它正在使用IE 8和IE 11,因为我的客户很少使用IE8,很少有人使用IE 11.我得到一些布局相关的问题,因为doctype标签。
当我在主页面中添加此doctype标记时,我的布局在IE 8中失真,但在IE 11中工作正常
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
同样,当我删除此标记时,它适用于IE 8,但不适用于IE 11。
答案 0 :(得分:0)
尝试在<head>
上放置兼容X-UA的元标记。它将使IE渲染html与最新的布局引擎。
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
答案 1 :(得分:0)
首先,检查浏览器用于显示页面的模式。 IE8的所有IE版本都带有一个开发工具窗口,可以通过按F12打开。这将显示浏览器使用的模式。如果它不是“IE8标准”(对于IE8)或“Edge”(对于IE11),那么你需要问问自己为什么。
了解浏览器的模式将帮助您解决问题。
关于doctype,此处只有一条规则:始终始终包含doctype。您不应该在今天的网页上编写完全没有文档类型的HTML页面。
如果您没有doctype,那么IE(所有版本和其他浏览器)也会将页面置于“Quirks模式”。这将导致页面布局出现问题,并导致它在不同浏览器中的工作方式不同(甚至在同一浏览器的不同版本中)。应该尽可能避免怪癖模式,因此你应该总是有一个doctype。
如果您可以选择使用哪种doctype,请考虑使用HTML5 doctype:<!DOCTYPE html>
。
理论上,您使用的几乎任何(有效)doctype都应该是相同的:即将页面置于标准模式。您使用的doctype是XHTML Transitional doctype。这应该没问题,但同样HTML5文档类型也可以正常工作,而更简单的doctype字符串可以降低拼写错误使页面无效并破坏页面的可能性。
doctype必须是页面上的第一件事。之前没有评论或空格。这可能导致某些版本的IE将doctype视为无效。
使用有效的doctype,您不应再将Quirks模式显示为开发工具中的模式。
接下来要做的是通过W3C Validator运行HTML代码。这将返回您的代码中可能包含的任何HTML语法错误的详细信息。此处显示的错误通常是导致跨浏览器怪异的事情,因此您应该修复验证程序中报告的任何内容。
如果IE的浏览器模式显示为兼容模式,可能会出现这种情况的原因有很多,但您通常可以通过确保HTML <head>
包含以下行来解决此问题:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
'edge'设置告诉IE的所有版本使用其最佳可用渲染模式。除非您有特定的理由使用特定的兼容模式,否则您永远不需要为此标志使用任何其他值。
为了进一步阅读,我written a detailed article解释了如何将IE保持在标准模式以及为什么这是一件好事。
我希望这会有所帮助。