林大夏 2019-12-20
最近在维护一些老的项目,需要兼容ie7 ,css3就不能用了,这里总结一下碰到的问题及解决方案。
1、盒模型
ie7、8 的盒模型都是 box-sizing为content-box的盒模型,这里在做的时候就要注意
2、display:inline-block
碰到使用块级元素的场景 有兼容写法 *display:inline;*zoom:1。
不愿这么写的话就用float吧,不过要记得请浮动
3、水平垂直居中
在c3中我们可以用 flex ,可以用transform,实现水平垂直居中。在ie7下 怎么办呢?
如果是已知宽高的元素,我们可用 定位:left:50%,margin-left:-100px;这种方法居中
未知宽高的话,先转成 inline ,用text-align:center;和line-height 去实现水平和居中定位。
4、透明度
ie7不支持opacity 和 rgba() 这种方式设置透明度,碰到一些场景,比如模态框 的透明背景,如何兼容呢?
这里在写代码的时候 除了用 opacity:0.2 再加 filter:alpha(opacity:20);就可以了 (亲测有效)
5、圆角和阴影
border-radius 和box-shadow 是不支持的,只能用背景图片代替了.......
6、dataset
ie7下不支持 event.target.data(‘‘)这种方法获取dataset
我们可以用 event.target.getAttribute(‘data-index‘) 获取data属性值
7、border-spacing
这个貌似是表格边框的属性,ie8支持,可以设置表格的间距。
ie7下 加兼容写法 *border-spacing:expression(this.cellSpacing="14px")
cell-spacing 都可以用这种写法 详见这篇博客https://blog.csdn.net/gdfjhc/article/details/87298303
目前就接触这么多,后面的有空再补充吧。