css Hack 以及css的一些兼容问题小结
坚持每天做总结
。今天下班还算早。写个跟css兼容有关的知识点。便于后期查看与学习。
一、先说说各种主流浏览器的内核
浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不同的浏览器内核对网页编写的解释也不同,反映在网页上的效果也会有所差别。
| 浏览器 | IE | firefox | chrome | safari | opera |
| 内核 |
Trident |
Gecko |
Webkit |
Webkit |
Presto |
当然,各种浏览器内核在不断更新中,表格只能作为一个简单参考,像Chromium/Bink等内核,还有各种浏览器内核的具体了解,感兴趣的可以上网查查。
因为不同浏览器的不同内核,导致了不同的渲染效果,我们在实际开发中,为了达到一致的效果,所以就出现了兼容性问题。
二、css Hack
css Hack 的目的就是使CSS代码兼容不同的浏览器.
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
例如以上代码:
! :选择条件版本以外的所有版本
.test{
color:#000; /* 正常写法普遍支持 */
color:#00F\9; /* 所有IE浏览器(ie6+)支持 */
/*但是IE8不能识别“ * ”和“ _ ” */
[color:#000;color:#0F0; /* SF,CH支持 */
color:#00F\0; /* IE8支持*/
*color:#FF0; /* IE7支持 */
_color:#F00; /* IE6支持 */
}
- “-″减号是IE6专有的hack
- “\9″ IE6/IE7/IE8/IE9/IE10都生效
- “\0″ IE8/IE9/IE10都生效,是IE8/9/10的hack
- “\9\0″ 只对IE9/IE10生效,是IE9/10的hack
- IE6以下能识别*;不能识别 !important;
- FF不能识别*,但能识别!important;
3 选择器前缀法
* html .test{color:#090;} /* For IE6 and earlier */
* + html .test{color:#ff0;} /* For IE7 */
*html *前缀只对IE6生效*+html *+前缀只对IE7生效。
当然总结的这些不够详细和全面,具体应用还得在实际开发中依据情况而定。
二、css兼容性的相关问题
1、padding 与 margin 问题
不同的浏览器,对默认的margin和padding解析方式不同
解决方案:
body{
margin:0px;
padding:0px;
}
2、居中布局
ff,chrome....通过 margin:auto方式完成块级元素居中显示
ie6及以下,主要通过 text-align:center;方式完成所有元素的居中(包含块级)
body{
margin:auto;
text-align:center;
}
3、元素高度与内容
内容高度超出定义高度后,ie6,自适应,其他浏览器,溢出。
解决方案:
overflow属性;
4、子元素设置上外边距时对父元素的影响
解决方案:
(1)、父元素 加 border
(2)、设置父元素的padding-top取代子元素的margin-top
(3)、参见我的博客中的相关文章有介绍更多方法。
三、CSS3浏览器前缀
我们在用到css3的一些属性时,为了达到浏览器的兼容性,通常会加一些前缀,比如:-webkit-, -ms-等等。
这些前缀其实是浏览器的私有属性。
//浏览器前缀:
-webkit-transform: translateX(x) //Safari and Chrome
-o-transform: translateX(x) //Opera
-moz-transform: translateX(x) //Firefox
-ms-transform: translateX(x) //IE
。。。。。。。
下班啦。拜拜。
css Hack 以及css的一些兼容问题小结的更多相关文章
- CSS选择器、CSS hack及CSS执行效率
主要内容: 1.CSS选择器.优先级与匹配原理 2. CSS 引入的方式有哪些 ? link 和 @import 的区别是 ? 3.CSS hack 4.如何书高效CSS 一.CSS选择器.优先级与 ...
- 简述几个css hack?【CSS】
(1) 图片间隙 在div中插入图片,图片会将div下方撑大3px. hack1:将<div>与<img>写在同一行. hack2:给<img>添加display ...
- CSS hack浏览器兼容一览表
CSS hack是指我们为了兼容各浏览器,而使用的特别的css定义技巧.这是国外摘来的一张CSS hack列表,显示了各浏览器对css hack的支持程度,对我们制作兼容网页非常有帮助.
- [转]CSS hack大全&详解
转自:CSS hack大全&详解 1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的, ...
- CSS hack技术
首先我们要了解一个概念CSS hack 不同浏览器,比如IE6.IE7.IE8,Mozilla Firefox等,对CSS的支持及解析结果不同,因此会导致相同的网页生成的页面效果不一样. 这个时候我们 ...
- CSS hack大全
1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以 ...
- 常用的CSS Hack技术集锦
来源:http://www.ido321.com/938.html 一.什么是CSS Hack? 不同的浏览器对CSS的解析结果是不同的,因此会导致相同的CSS输出的页面效果不同,这就需要CSS Ha ...
- CSS hack常用方案(摘选)
邮箱因为默认了line-height?:170%,导致采用table元素时继承问题,可以采用line-height:50% 很好解决. 常 在使用float时,后面的显示不正常,因为继承了float了 ...
- CSS Hack是什么意思
CSS hack由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效 ...
随机推荐
- 内核映像的形成 —— KBuild体系
1. http://blog.csdn.net/yunsongice/article/details/6046537 2. http://blog.csdn.net/yunsongice/articl ...
- rand值出现负数的解决方案
当rand($number)或者mt_rand($number)的时候,$number太大,超过pow(2,31) - 1;即整型最大值的时候,会出现负数. 如果只是单纯转换成整数而已的话,可以采用s ...
- 统计0到n之间1的个数
问题描写叙述 给定一个十进制整数N,求出从1到N的全部整数中出现"1"的个数. 比如:N=2时 1,2出现了1个 "1" . N=12时 1,2,3,4,5,6 ...
- do {...} while (0) in macros
If you are a C programmer, you must be familiar with macros. They are powerful and can help you ease ...
- 【双十一到了,准备买书了么?】推荐几本c/c++入手的书籍
<C和指针>c语言的经典之作,全书共18章,覆盖了数据.语句.操作符和表达式.指针.函数.数组.字符串.结构和联合等几乎所有重要的C编程话题.而且每章后面都有基础回顾已经较多例程,很适合入 ...
- proxy代理类
package cn.hncu.proxy.rent; import java.lang.reflect.InvocationHandler;import java.lang.reflect.Meth ...
- 浅谈xss攻击
近期学习过程中提到xss攻击的问题,便想要了解一下,总结如下: XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, ...
- openshift django目录结果
blog├── README.md├── requirements.txt├── setup.py├── static├── wsgi│ ├── application│ ├── db.sql ...
- POWER DESIGN
一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2)容易为人所理解3)便于计算机实现 概念数据模型也称信息模型,它以实体-联系(E ...
- 给jdk写注释系列之jdk1.6容器(7)-TreeMap源码解析
TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解. 要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链 ...