常见的浏览器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最佳实践之精妙的自定义事件
Aug 11 Javascript
javascript各浏览器中option元素的表现差异
Apr 07 Javascript
JS完成代码前最好对其做5件事
Apr 07 Javascript
基于JavaScript实现本地图片预览
Feb 08 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
vue+element-ui+ajax实现一个表格的实例
Mar 09 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
vue项目移动端实现ip输入框问题
Mar 19 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
jquery实现动态改变css样式的方法分析
May 27 jQuery
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
JavaScript实现图片合成下载的示例
Nov 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
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
详解Python装饰器
2019/03/25 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
Python安装selenium包详细过程
2019/07/23 Python
Python中Selenium模块的使用详解
2020/10/09 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
电钳工人个人求职信
2014/05/10 职场文书
竞聘上岗演讲
2014/05/19 职场文书
个人违纪检讨书
2014/09/15 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle