浏览器hack总结 详细的浏览器兼容性解决方法
由于各浏览器对页面的解析不同,会导致页面在不同浏览器中显示的样式不一致,为了保持页面的统一,经常需要对浏览器进行兼容性问题的调试。
CSS Hack
面对浏览器诸多的兼容性问题,经常需要通过CSS样式来调试,其中用的最多的就是CSS Hack。所谓CSS Hack就是针对不同的浏览器书写不同的CSS样式,通过使用某个浏览器单独识别的样式代码,控制该浏览器的显示效果。CSS Hack主要分为两类
CSS 选择器Hack
CSS选择器Hack是指通过在CSS选择器的前面,加上一些只有特定浏览器才能识别的Hack前缀,来控制不同的CSS样式。针对不同版本的浏览器,选择器Hack分为以下几类:
(1)IE6及IE6以下版本识别的选择器Hack
书写CSS样式时,如果希望此样式只对IE6及IE6以下版本的浏览器生效,可以使用IE6及以下版本的选择器Hack,其基本语法如下:
* html 选择器{样式代码}
(2)IE7识别的选择器Hack
书写CSS样式时,如果希望此样式只对IE7浏览器生效,可以使用IE7识别的选择器Hack,其基本语法如下:
*+html 选择器{样式代码}
CSS属性Hack
这里小强老师,把属性hack分为 前缀属性hack和 后缀属性hack
| CSS属性Hack(前缀) | 针对的浏览器 |
| _color:red; | IE6及其以下的版本 |
| *color:red ;或者 +color:red; | IE7及其以下的版本 |
| CSS属性Hack(后缀) | 针对的浏览器 |
| color:red\9; | IE6/IE7/IE8/IE9/IE10版本 |
| color:red\0; | IE8/IE9/IE10版本 |
| color:red\9\0; | IE9/IE10 |
| color:red!important | IE7/IE8/IE9/IE10及其他非IE浏览器 |
其实,现在越来越的公司,不太让兼容ie6了,现在比较关心的是ie8.910等高版本的浏览器,因此这里小强老师也总结了ie专属hack ,比如ie8等。
| 选择器Hack写法 | 针对于的浏览器 |
| @media screen\9{body { background: red; }} | 只对IE6/7生效 |
| @media \0screen {body { background: red; }} | 只对IE8生效 |
| @media \0screen\,screen\9{body { background: blue; }} | 只对IE6/7/8有效 |
| @media screen\0 {body { background: green; }} | 只对IE8/9/10有效 |
| @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} | 只对IE10有效 |
如果样式比较多,条件注释,是不错的选择:
IE条件注释语句
| IE条件注释语句 | 针对的浏览器版本 |
| <!--[if lt IE 7]>内容<![endif]--> | IE7 以下版本 |
| <!--[if lte IE 7]>内容<![endif]--> | IE7及以下版本(包含IE7) |
| <!--[if gt IE 7]>内容<![endif]--> | IE7 以上版本 |
| <!--[if gte IE 7]>内容<![endif]--> | IE7及以上版本(包含IE7) |
| <!--[if !IE 7]>内容<![endif]--> | 非IE7版本 |
| <!--[if !IE]><!-->您使用不是 Internet Explorer<!--<![endif]--> | 非IE浏览器 |
小强零零壹和大家一起分享
浏览器hack总结 详细的浏览器兼容性解决方法的更多相关文章
- 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法
在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...
- IE8、IE9浏览器下报:JSON未定义 解决方法
IE8.IE9浏览器下报:JSON未定义的问题 解决方法: 在jsp中引入如下代码 <!-- 解决 IE8.IE9 下显示混乱的问题--><% String browserStrin ...
- CenOS下firefox browser (火狐浏览器)无法播放网页音乐的解决方法
新装载的Firefox或许无法播放网页音频,解决方法如下: 1. 下载并安装 flashplayer插件&&下载网址:https://get.adobe.com/flashplayer ...
- Chorme浏览器渲染MathJax时出现竖线的解决方法
Chorme浏览器渲染MathJax时出现竖线的原因分析与解决方法 查资料知,Chorme中显示MathJax时出现竖线的原因如下: 新版的Chorme浏览器在解析css时,会对其中的值进行向上取整( ...
- ie 浏览器下ajax请求来自缓存的解决方法
如上图所示,在ie浏览器下发出的请求,如何缓存中已经出现过这条请求记录,则不会请求服务端数据,解决方法是在请求后增加一个随机数,使每次请求都不同*可以添加当前时间戳 url+'?t='+Date.no ...
- ios微信浏览器click事件不起作用的解决方法
$(document).on( "click", ".weui_cell", function (event) {alert(); }); JS代码是这样的,h ...
- IE浏览器new Date()带参返回NaN解决方法
var start = '2016-01-01 12:12:12'; var date = new Date(start); 得到的时间为NaN: 解决方法: 1.自定义方法 自定义一个NewDate ...
- CSS兼容性解决方法!important的IE7,Firefox问题
转自:http://www.codesky.net/article/201008/139903.html 1. 首先谈谈!important问题的引起(盒模型问题): 在CSS标准中,一个盒模型包括4 ...
- 【转】 IE6 IE7 IE8 css bug兼容性解决方法总结归纳
1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是 ...
随机推荐
- Protel99se轻松入门:一些高级设置和常用技巧
给PCB补泪滴的具体操作 这里我们可以知道给PCB做覆铜是多么的简单 在PCB中如何找到我们要找的封装 在PCB中如何打印出中空的焊盘(这个功能对于热转印制板比较有用) 如何在PCB文件中加上漂亮的汉 ...
- C#实现阻止关闭显示器和系统待机
原文http://www.cnblogs.com/TianFang/archive/2012/10/12/2721883.html 最近写了一个下载程序,发现有一个问题:挂机下载的时候,下载任务会因为 ...
- 导入Excel加行公式和验证
package com.sprucetec.tms.controller.fee.export; import com.sprucetec.tms.controller.base.BaseFeeExp ...
- python2.6升级到2.7
开发部需要使用python2.7,由于公网的环境python版本都是系统自带的,版本是2.6,需要升级,最好是通过RPM升级. Linux系统:CentOS CentOS 6.4升级Python后yu ...
- linux内核源码阅读之facebook硬盘加速flashcache之二
flashcache数据结构都在flashcache.h文件中,但在看数据结构之前,需要先过一遍flashcache是什么,要完成哪些功能?如果是自己设计这样一个系统的话,大概要怎么设计. 前面讲过, ...
- HDU 4569 Special equations (数学题)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4569 题意:给你一个最高幂为4的一元多项式,让你求出一个x使其结果模p*p为0. 题解:f(x)%(p ...
- PHP面试题汇总参考
PHP面试题汇总 这是一份比较全面的PHP面试题.对准备去新公司应聘PHP职位的开发者应该有帮助.或者说,对招聘PHP开发人员的企业也有些帮助,不过就不要原样打印出来考了,稍微改一改. 简述题(50分 ...
- CAEmitterLayer 粒子发射器
在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ...
- [iOS]超详细Apache服务器的配置(10.10系统)
配置目的:有一个自己专属的测试服务器 我们需要做以下事情: 1.新建一个目录,存放网页 2.修改Apache配置文件httpd.conf - 修改两个路径 - 增加一个属性 - 支持PHP脚本 3.拷 ...
- uml笔记
把进度放在好了: 活动图与业务流程 对业务流程支持的主要图形就是活动图,活动图的主要目的在陈述活动与活动之间流程控制的转移.