我希望这里有人能帮助我。我知道在 IE 9 中,有 quirks mode 和 standard mode,如果我不定义一个 doctype 比如:
<!DOCTYPE html>
作为我的 html 的第一行,浏览器将进入怪癖模式。
这是问题所在,我正在用 HTML 编写一些东西,然后将其嵌入到另一个站点(我已经检查过,没有文档类型声明,该站点属于我的学校,所以我无法改变它)。
所以最后会变成这样
<html> .... </html> //the original website code
<!DOCTYPE html>//my doctype declaration
<html>... </html> //my html code
如您所见,我的 DOCTYPE 变得毫无用处。
不,我无法更改原始 html 代码,也无法强制它使用 iframe 或任何其他可能对我有帮助的东西。
所以我的问题是,有没有人强制 IE 9 在没有 DOCTYPE 的情况下以标准模式运行?
我试过:
<html xmlns="http://www.w3.org/1999/xhtml"> //putting page in xhtml
<meta http-equiv="X-UA-Compatible" content="IE=9" />//forcing it like this
它们都不适合我。
有什么想法吗?
非常感谢此时的任何帮助。
提前致谢!
编辑:更新:
大家好,感谢您的帮助。我知道拥有 ... ... ... 是一种可怕的做法。然而,这是我的元素的一个限制,我无法控制它。还有,我只能操作里面的..。
我四处搜索,似乎没有“很棒”的解决方案,正如有人建议的那样,可以使用 Javascript 强制 IE 9 在标准模式下运行,但这对我的元素来说并不理想。
我最终做的是剥离我的 html 页面的 css(这样浏览器是否以标准模式运行并不重要),相反,我在整个 HTML 中添加了内联样式(非常基本的样式)作为一个痛苦的解决方法。
这似乎是一个 corner-case,IE 9 没有预料到,这个问题在 Chrome、Firefox、IE 8 中不存在,正如我测试的那样。
无论如何,感谢大家的帮助!
最佳答案
为什么没有 <!DOCTYPE>
?这是最糟糕的选择。
<!DOCTYPE>
声明必须是 HTML 文档中的第一件事,在 <html>
之前标签。 <!DOCTYPE>
声明不是 HTML 标记。它是向 Web 浏览器发出的关于页面所用 HTML 版本的说明。
DOCTYPE(“文档类型声明”的缩写)通知验证器您正在使用哪个版本的 (X)HTML,并且必须出现在每个网页的最顶部。 DOCTYPE 是合规网页的关键组成部分:没有它们,您的标记和 CSS 将无法通过验证。
好的读物:
关于css - 使 IE 9 在没有 Doctype 的情况下工作在标准模式下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549915/