兼容利器之X-UA-Compatible
文档兼容模式
不同浏览器之间经常产生各种奇异的现象,为了解决这些问题,使用以下方法,发现很多问题自动消失不见了
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
这是一个,文档兼容模式的定义。 Edge 模式告诉 IE 以最高级模式渲染文档,也就是任何 IE 版本都以当前版本所支持的最高级标准模式渲染,避免版本升级造成的影响。
简单的说,就是什么版本 IE 就用什么版本的标准模式渲染 <meta http-equiv="X-UA-Compatible" content="IE=edge">
使用以下代码强制 IE 使用 Chrome Frame 渲染 <meta http-equiv="X-UA-Compatible" content="chrome=1">
提示 IE 用户安装 Google Frame Google 官方提供了对 Google Frame 插件安装情况的检测,这里直接调用方法即可,如果检测到 IE 并未安装 Google Frame,则弹出对话框提示安装。
<script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script><script>CFInstall.check();</script>
最佳的兼容模式方案,结合考虑以上两种: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
Google Chrome Frame
Google开发的一个Google Chrome Frame「Google Chrome 浏览器内嵌框架 – GCF」。使用GCF可以让用户的IE浏览器外观不变,但用户在浏览网页时实际上使用的是Chrome的内核,并且支持Windows XP及以上系统的IE6/7/8。
官方对其定义:
- 可使用开放式网络技术(如 HTML5 canvas 标记)立即启动,甚至包括 Internet Explorer 6、7 或 8 尚不支持的技术。
- 利用 JavaScript 性能增强功能,使应用程序速度更快,响应更灵敏。
w3.org的html5验证
然而,下一个问题又来了,在w3.org的html5验证工具下:
HTML5 Validator Error “Bad value X-UA-Compatible for attribute http-equiv on element meta
介个也好解决,针对三种主流服务器,我们都可以在服务器端配置http equiv规则:
1、apache服务器
确保 mod_headers 和 mod_setenvif 是available的,然后在httpd.conf「新版Apache的配置文件是 apache2.conf」或者在.htaccess中加入以下规则:
1.
<
IfModule
mod_setenvif.c>
2.
<
IfModule
mod_headers.c>
3.
BrowserMatch chromeframe gcf
4.
Header append X-UA-Compatible "chrome=1" env=gcf
5.
</
IfModule
>
6.
</
IfModule
>
2、Windows Server在IIS7或者更高版本的服务器
只需要修改web.config文件,添加如下信息即可:
01.
<
configuration
>
02.
<
system.webServer
>
03.
<
httpProtocol
>
04.
<
customHeaders
>
05.
<
add
name
=
"X-UA-Compatible"
value
=
"chrome=1"
/>
06.
</
customHeaders
>
07.
</
httpProtocol
>
08.
</
system.webServer
>
09.
</
configuration
>
3、Nginx服务器
只需要找到ginx.conf并编辑,在server { }区域里(最好是闭合符前面起一行)添加下列代码即可:
1.
add_header "X-UA-Compatible" "IE=Edge, chrome=1";
总结
- 如果支持Google Chrome Frame:GCF,则使用GCF渲染;
- 如果系统安装ie8或以上版本,则使用最高版本ie渲染;
- 否则,这个设定可以忽略。
极速模式
最近用360浏览器访问自己的网站,发现都是被优先选用兼容模式打开,这使得网站很难看。为了让360浏览器打开网站的时候优先试用极速模式,找了一下官方论坛,发现了解决方案。
在head标签中添加一行代码:
<meta name="renderer" content="webkit|ie-comp|ie-stand">
content的取值为webkit,ie-comp,ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。
若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit">
若页面需默认用ie兼容内核,增加标签:<meta name="renderer" content="ie-comp">
若页面需默认用ie标准内核,增加标签:<meta name="renderer" content="ie-stand">
原文地址:http://se.360.cn/v6/help/meta.html
ie10 兼容性调整之滚动条
因为微软要兼容触摸屏 所以滚动条是必须要修正的 触摸屏上滚动条不以鼠标滚轮为触发
所以ie10下凡是以前没有显示声明scroll-y的 现在必须显示的做出滚动条声明
比如lightbox的父级容器就必须在_finish处理函数中添加
$('#container').css({'overflow-y':'scroll'});
以达到显示声明的目的.
较为通用的解决办法是: -ms-overflow-style: scrollbar;/*auto | none | scrollbar | -ms-autohiding-scrollbar*/
参考文章:
http://ziren.org/html-css/content-ie-edge-chrome-1-introduction-web-page-using-chrome-rendering.html
http://www.cnblogs.com/huangcong/p/3870276.html
http://blog.csdn.net/kkun/article/details/23888281
https://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh771902.aspx
兼容利器之X-UA-Compatible的更多相关文章
- Win下必备利器之Cmder
诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...
- C#编程利器之二:结构与枚举(Structure and enumeration)【转】
C#编程利器之二:结构与枚举(Structure and enumeration) 在上一篇文章中,介绍了类如何封装程序中的对象.而实际中,出了类可以封装对象外,结构和枚举也可以封装一些对象,本文将着 ...
- 大数据并行计算利器之MPI/OpenMP
大数据集群计算利器之MPI/OpenMP ---以连通域标记算法并行化为例 1 背景 图像连通域标记算法是从一幅栅格图像(通常为二值图像)中,将互相邻接(4邻接或8邻接)的具有非背景值的像素集合提取出 ...
- php调试利器之phpdbg
信海龙的博客 php调试利器之phpdbg 简介 PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境. PHPDBG的目标是成为一个轻量级.强大.易用的 ...
- 后台任务利器之Hangfire
后台任务利器之Hangfire 一.简述 Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在.net core的环境中,由Core自带的DI管理着生命周期,免去了在NF4 ...
- Android开发利器之ActivityTracker
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/113 Android开发利器之ActivityTracke ...
- windows管理员利器之用Log Parser Studio分析IIS日志(附逐浪CMS官方命令集)
原文:windows管理员利器之用Log Parser Studio分析IIS日志(附逐浪CMS官方命令集) Log Parser Studio是一个强大的IIS图形分析工具,值得推荐. 1. 安装L ...
- .NET Core开源组件:后台任务利器之Hangfire 转载 https://www.cnblogs.com/chenug/p/6655636.html
.NET Core开源组件:后台任务利器之Hangfire 一.简述 Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在.net core的环境中,由Core自带的D ...
- Java高并发编程基础三大利器之CountDownLatch
引言 上一篇文章我们介绍了AQS的信号量Semaphore<Java高并发编程基础三大利器之Semaphore>,接下来应该轮到CountDownLatch了. 什么是CountDownL ...
随机推荐
- Android性能优化的浅谈
一.概要: 本文主要以Android的渲染机制.UI优化.多线程的处理.缓存处理.电量优化以及代码规范等几方面来简述Android的性能优化 二.渲染机制的优化: 大多数用户感知到的卡顿等性能问题的最 ...
- git 错误:
git 错误: $ git commit -afatal: Unable to create 'e:/git/Android/XXXXXX/.git/index.lock': File exists ...
- iOS之 opencv3.0.framework
本文章的目的是从源代码包中编译出opencv2.framework供IOS开发使用. 基本上是按照http://docs.opencv.org/3.0-beta/doc/tutorials/intro ...
- .Net Core 之 Ubuntu 14.04 部署过程
No.1 准备应用程序 1. 创建.Net Core Web项目 2. 使用VS2015发布 No.2 安装.Net Core for Ubuntu Ubuntu的安装就不介绍了,百度搜索一大堆.本人 ...
- openstack数据库获取一个虚机的floating_ip, fix_ip, project_name, user_name, hostname, host
转载请注明 http://www.cnblogs.com/juandx/p/5418204.html openstack有3个库,nova,neutron,keystone,我现在需要做的是跨库联表 ...
- Windows下好用到必须开机自启的小工具
折腾过linux,黑苹果,最后还是回到了盖茨大叔的windows.得出的结论是,日常使用的话,折腾Linux还不如把精力去拿去折腾windows.分享下折腾的成果,介绍下一些很不错的小工具. ...
- Java api 入门教程 之 JAVA的IO处理
IO是输入和输出的简称,在实际的使用时,输入和输出是有方向的.就像现实中两个人之间借钱一样,例如A借钱给B,相对于A来说是借出,而相对于B来说则是借入.所以在程序中提到输入和输出时,也需要区分清楚是相 ...
- 烂泥:apache密码生成工具htpasswd的应用
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 1. htpasswd的作用与安装 2. htpasswd命令详解 3. htpasswd的实例 4. htpasswd的应用 一.htpasswd的作 ...
- day 2 Linux目录结构
Linux系统的目录结构的基本介绍: 1)在逻辑上的所有目录(包括目录下的子目录)都在最高级别的目录“/”下. 根(/)目录是Linux系统中所有目录的起始点(顶点),根下面的目录及子目录是一个有层次 ...
- emacs 新手笔记(四) —— 使用 dired 完成一些简单的文件和目录操作
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 据说熟悉了 dired,就可以在 emacs 下轻松管理文件和目录了,甚至不再需要 shell 和桌面操作. ...