常见的浏览器Hack技巧整理


Posted in Javascript onJune 29, 2017

常见的浏览器Hack技巧整理

如果你经常需要做前端页面,那么你一定多多少少需要解决页面的浏览器兼容问题。而浏览器兼容问题大部分也集中在对IE系列的兼容。这里就总结一下对IE系列的CSS Hack,记录一下,方便以后查阅。

IE Hack

IE系列浏览器的hack大略如下:

  • _nowamagic:1px;-----------ie6
  • *nowamagic:1px;-----------ie7
  • nowamagic:1px\0;----------ie89
  • nowamagic:1px\9\0;--------ie9
  • :root nowamagic:1px;    ----ie9(实际情况可能ie9还是有问题,再用这种方式)

这样就基本上就可以兼容所有IE。

常见的浏览器Hack技巧整理

其中粉红色部分为属性hack,黄色部分为选择器hack,它们可以结合使用。此外Firefox和Chrome也有它们专有的hack,详细hack方式及使用示例如下:

Firefox 与 Chrome 的 Hack

Firefox:

@-moz-document url-prefix()  /*写在选择器外层时(只可写在此处):Firefox 
only*/

Chrome:

@media screen and (-webkit-min-device-pixel-ratio:0)  /*写在选择器外层时(只可写在此处):Chrome only*/

使用示例:

@-moz-document url-prefix()  /*Firefox*/
{
 body
 {
 background-color:pink;
 }
}

浏览器对css的解析是从前到后的,并且采用最后一个样式声明。

CSS 实例

.color{
  background-color: #CC00FF;    /*所有浏览器都会显示为紫色*/
  background-color: #FF0000\9;  /*IE6、IE7、IE8会显示红色*/
  *background-color: #0066FF;    /*IE6、IE7会变为蓝色*/      
  _background-color: #009933;    /*IE6会变为绿色*/
}
background: red;    /* 对FF Opera和Safari有效 */
#background: blue;   /* 对 IE6 和 IE7有效 */
_background: green;   /* 只对IE6有效 */
/*/background: orange;*/   /** 只对IE8有效 **/
!important     /*FF、IE7有效*/
*     /*IE都有效*/

IE8是可以和IE7兼容的,简单一行代码,让IE8自动调用IE7的渲染模式。只需要在页面中加入如下HTTP meta-tag:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />,只要IE8读到这个标签,它就会自动启动IE7兼容模式,保证页面完整展示。

混用起来大约是这样:

:root .demo { 
 background:#963\9; /* 仅IE9适用 */ 
} 
.demo { 
 width: 300px; 
 height: 200px; 
 background: #036; /* 所有浏览器都适用 */ 
 background: #09F\9; /* IE6~IE9 */ 
 background: #09F\0; /* IE8~IE9 */ 
 background: #09F\0/; /* IE8 */ 
 *background: #F60; /* IE6/IE7 */ 
 +background: #F60; /* IE6/IE7 */ 
 @background: #F60; /* IE6/IE7 */ 
 >background: #F60; /* IE6/IE7 */ 
 _background: #ccc; /* IE6 */ 
} 
@media all and (min-width:0) { 
 .demo { 
 background: #F06; /* webkit and opera */ 
 } 
} 
 
@media screen and (-webkit-min-device-pixel-ratio:0){ 
 .demo {background:#609;}/*webkit (& Opera9.2)*/ 
}

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
JavaScript程序员应该知道的45个实用技巧
Mar 04 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
Vue.js父与子组件之间传参示例
Feb 28 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
怎样在vue项目下添加ESLint的方法
May 16 Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 Javascript
JS中FileReader类实现文件上传及时预览功能
Mar 27 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 #Javascript
bootstrapvalidator之API学习教程
Jun 29 #Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
Jun 29 #Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 #jQuery
详解webpack 多页面/入口支持&amp;公共组件单独打包
Jun 29 #Javascript
详解webpack 如何集成第三方js库
Jun 29 #Javascript
详解webpack介绍&amp;安装&amp;常用命令
Jun 29 #Javascript
You might like
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
Python随机读取文件实现实例
2017/05/25 Python
Python中的id()函数指的什么
2017/10/17 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
Python偏函数实现原理及应用
2020/11/20 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
String这个类型的class为何定义成final?
2012/11/13 面试题
门卫人员岗位职责
2013/12/24 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
区级文明单位申报材料
2014/05/15 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python