常见的浏览器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 相关文章推荐
jquery validate poshytip 自定义样式
Nov 26 Javascript
javascript一元操作符(递增、递减)使用示例
Aug 07 Javascript
jquery列表拖动排列(由项目提取相当好用)
Jun 17 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
Sep 15 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
微信小程序利用co处理异步流程的方法教程
May 20 Javascript
angular中不同的组件间传值与通信的方法
Nov 04 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
vue 实现tab切换保持数据状态
Jul 21 Javascript
JS+CSS实现动态时钟
Feb 19 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代码
2012/07/14 PHP
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python模块导入的方法
2019/10/24 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
python属于哪种语言
2020/08/16 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
美术专业自荐信
2014/07/07 职场文书
村级四风对照检查材料
2014/08/24 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
闪闪红星观后感
2015/06/08 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP
MySQL中连接查询和子查询的问题
2021/09/04 MySQL
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技