常见的浏览器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实现table单双行不同显示并能单行选中
Jul 25 Javascript
range 标准化之获取
Aug 28 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
删除javascript中注释语句的正则表达式
Jun 11 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
详解ES6中的Map与Set集合
Mar 22 Javascript
详解原生JS回到顶部
Mar 25 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
Apr 17 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
Aug 28 Javascript
layui的select联动实现代码
Sep 28 Javascript
JavaScript中的null和undefined用法解析
Sep 30 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/09/14 PHP
php递归函数怎么用才有效
2018/02/24 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
用ADODB.Stream转换
2007/01/22 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
详解Python中用于计算指数的exp()方法
2015/05/14 Python
Python 中的with关键字使用详解
2016/09/11 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
什么是Python变量作用域
2020/06/03 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
汽车技术服务英文求职信范文
2014/01/02 职场文书
给国外客户的邀请函
2014/01/30 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
netty 实现tomcat的示例代码
2022/06/05 Servers