浏览器兼容

不同浏览器的标签默认的margin和padding不同

* { margin:0; padding:0; }
`

块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大,hack:display:inline;将其转化为行内属性

渐进的识别方式,从总体逐渐排除局部。首先,巧妙的使用”9”,这一标记,将IE浏览器从所有情况中分离出来。接着,再次使用”+”将IE8和IE7,IE6分离开来,这样子IE8已经独立识别

background-color:#f1ee18;/*所有识别*/
.background-color: #00deff\9; /*IE6、7、8识别*/
+background-color: #a200ff;/*IE6、7识别*/
_background-color: #1e0bd1;/*IE6识别*/ 

设置较小高度标签(小于10px),再IE6,IE7中高度超出自己设置的高度。hack:给超出高度的标签设置overflow:hidden;或者设置行高line-height小于你设置的高度。

IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。解决方法:统一通过getAttribute()获取自定义属性。

Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,可通过加入 CSS 属性 -webkit-text-size-adjust:none

超链接访问过后hover样式就不出现,被点击访问过的超链接不再具有hover和active了。解决方法是改变CSS属性的排列顺序:L-V-H-A(love hate):a:link{} a:visited{} a:hover{} a:active{}

为什么要初始化CSS样式

因为浏览器的兼容问题,不同浏览器对有些标签的默认样式是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异


  Reprint please specify: 云深不知处 浏览器兼容

 Previous
CSS面试题 CSS面试题
1. 盒子模型标准盒子模型:宽度 = 内容宽度(content) + border +padding + margin 低版本IE盒子模型:宽度 = 内容宽度(content + border + padding) + margin 2.
2019-04-04
Next 
构造器模式 构造器模式
构造器模式在面向对象编程中,构造器是一个当新创建对象的内存被分配后,用来初始化该对象的一个特殊函数。 创建对象的三种基本方式var newObject = {}; var newObject = Object.create( null )
2019-04-04
  TOC