常见的浏览器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 相关文章推荐
JavaScript入门教程(6) Window窗口对象
Jan 31 Javascript
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
Oct 29 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
JS实现进入页面时渐变背景色的方法
Feb 25 Javascript
javascript实现延时显示提示框特效代码
Apr 27 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
May 05 Javascript
详解JavaScript对象类型
Jun 16 Javascript
JS+CSS实现滚动数字时钟效果
Dec 25 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
微信小程序生成海报分享朋友圈的实现方法
May 06 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
Jul 21 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/02 国漫
利用PHP创建动态图像
2006/10/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
python字符串替换的2种方法
2014/11/30 Python
python中查看变量内存地址的方法
2015/05/05 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
python中requests库session对象的妙用详解
2017/10/30 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
python协程之动态添加任务的方法
2019/02/19 Python
python读写文件write和flush的实现方式
2020/02/21 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
python如何支持并发方法详解
2020/07/25 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
汉语专业毕业生自荐信
2014/07/06 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android