常见的浏览器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 鼠标滚轮事件
Apr 09 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
javascript中的if语句使用介绍
Nov 20 Javascript
node.js中的querystring.unescape方法使用说明
Dec 10 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
Apr 07 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
老生常谈 js中this的指向
Jun 30 Javascript
jQuery 生成svg矢量二维码
Aug 09 Javascript
jQuery Tree Multiselect使用详解
May 02 jQuery
利用forever和pm2部署node.js项目过程
May 10 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 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模板引擎
2016/08/26 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
详解vue中async-await的使用误区
2018/12/05 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
深入解析Python中的urllib2模块
2015/11/13 Python
Python中类型检查的详细介绍
2017/02/13 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Python PO设计模式的具体使用
2019/08/16 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
品学兼优的大学生自我评价
2013/09/20 职场文书
劳资员岗位职责
2013/11/11 职场文书
员工晚婚的请假条
2014/02/08 职场文书
寄语学生的话
2014/04/10 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
详解MySQL的内连接和外连接
2023/05/08 MySQL