常见的浏览器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 相关文章推荐
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
jquery实现模拟百分比进度条渐变效果代码
Oct 29 Javascript
微信小程序 video组件详解
Oct 25 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
Jun 11 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
Vue-cli@3.0 插件系统简析
Sep 05 Javascript
Vuex mutitons和actions初使用详解
Mar 04 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
May 21 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 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
PHP中的cookie
2006/11/26 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php中require和require_once的区别说明
2014/02/27 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
初入社会应届生求职信
2013/11/18 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
运动会通讯稿500字
2014/02/20 职场文书
关于保护环境的标语
2014/06/09 职场文书
机关作风建设自查报告
2014/10/22 职场文书
实习指导教师评语
2014/12/30 职场文书
如何撰写促销方案?
2019/07/05 职场文书