我在一家公司工作,我们所有的网站目前都使用XHTML 1.0过渡文档类型(是的,我知道它是非常古老的学校).我想将它们全部更改为使用HTML5 doctype,因为它向后兼容.我想要进行切换的原因之一是因为在IE8中如果有人安装了开发人员工具,那么旧的XHTML doctype会将浏览器切换到兼容模式并将页面呈现为IE7.通过阅读它,我被认为HTML5 doctype将设置任何页面以标准模式呈现,但是当我在我们的登台服务器上测试时它仍然没有发生它仍然转换到IE7渲染模式.
奇怪的是,如果我在本地保存带有HTML5 doctype的页面并打开它,它将在IE8标准模式下呈现.必须有其他东西导致它掉入兼容性IE7渲染.任何想法可能是什么?
以下是我一直关注的测试页面的负责人:
@H_404_6@<!DOCTYPE html > <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraPHProtocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>Burton - Mens Clothing - Mens Fashion - Burton Menswear</title> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <Meta name="description" content="Burton is one of the UK's leading men's clothing & fashion retailers,with a range of men's clothing designed to make you look & feel good. Find formal & casual clothes & accessories for men online at Burton menswear"/> <Meta name="keywords" content="menswear,clothes for men,clothing for men,men clothes,men's fashion,men's wear,men's clothing online,men's clothes online,men's clothes shop,burton men's,burton menswear,burton uk,burton"/> <script type="text/javascript">document.getElementsByTagName('html')[0].className = 'js';</script> <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/screen.css" /> <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/print.css" media="print"/> <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/brand.css" /> <!--[if lt IE 8]> <link rel="stylesheet" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/ie.css" type="text/css" media="screen,projection"> <![endif]--> <Meta http-equiv="content-language" content="en-gb" /> <link rel="shortcut icon" type="image/x-icon" href="http://eu.burton-menswear.com/favicon.ico" /> <link rel="search" type="application/opensearchdescription+xml" title="burton.co.uk Search" href="http://eu.burton-menswear.com/burton-search.xml"/> <!-- Start Summit Tag --> <script type="text/javascript"> var __stormJs = "t1.stormiq.com/dcv4/jslib/3286_D92B7532_4A18_46A8_864A_5FDF1DF25844.js"; </script> <script type="text/javascript" src="http://eu.burton-menswear.com/javascript/track.js"></script> <!-- End Summit Tag --> <!-- Start QuBit Tag --> <script src=//d3c3cq33003psk.cloudfront.net/opentag-31935-42109.js async defer></script> <!-- End QuBit Tag --> <link type="text/css" rel="stylesheet" href="http://reviews.br.wcstage.arcadiagroup.ltd.uk/bvstaging/static/6028-en_gb/bazaarvoice.css" ></link> </head>解决方法
IE 8中有几个设置可以导致页面在兼容模式下呈现,无论页面的HTML内容或HTTP标头如何:
>页面>兼容性视图设置
>如果选中“在兼容性视图中显示Intranet站点”,则IE将在兼容性视图中呈现本地网络上的所有站点. (这在开发过程中发生过几次.)
>如果选中“包括来自Microsoft的更新网站列表”,则IE将从Microsoft下载网站列表并在兼容性视图中全部呈现.
>如果选中“在兼容性视图中显示所有网站”,那么,您可以猜测会发生什么.
>工具>互联网选项>高级>浏览
>如果选中“使用兼容性视图自动从页面布局错误中恢复”,则IE有时会在认为页面布局中断时切换到兼容性视图.
>最后,如果您导航到某个页面,然后点击页面>兼容性视图(或单击地址栏中的兼容性视图图标),然后该页面将在兼容性视图中呈现.
因此,虽然值得将X-UA-Compatible放在那里并使用类似HTML5的文档类型(这样你的意图很明确),但在测试时总是先检查这些设置.