10精灵图 兼容性问题 常见的css bug
一、精灵图
精灵图
由多张小图构成的一张图案,英文名是sprite,又称雪碧图
实现步骤
实现一个指定大小的盒子,来装图片
将精灵图设置为盒子的背景
通过background-position调整背景图的位置
精灵图的核心技术就是background-position
优点
- 减少访问次数
- 占用内存少
- 文件数量少,减少命名
缺点
- 步骤繁琐
- 增删图标
二、兼容性
兼容性
同一个页面在不同的浏览器或者版本里面显示的效果不一致
处理兼容性问题的方法
css3-私有前缀
代表浏览器 前缀 浏览器内核
欧朋 -o- persto
IE -ms- trident
火狐 -moz- gecko
谷歌、safari -webkit webkit
三、常见的css bug
图片3px问题
- 给图片设置垂直对齐
vertical-align:top;
vertical-align:middle;
vertical-align:bottom;
行内块元素与元素之间会有空白
- 给元素设置浮动
float:left;
float:right;
- 去掉元素之间的空白和换行
表单元素在垂直方向上没有对齐
- 给元素设置浮动
float:left;
float:right;
- 给元素设置处置对齐
vertical-align:top;
vertical-align:middle;
vertical-align:bottom;
图片被a包裹后,在低版本浏览器会有边框
- 给图片设置
border:0;
图片是png-24格式的,在低版本浏览器显示成不透明的效果
- 将图片保存为png-8格式
- 将图片保存为gif格式
鼠标为手型的时候,在高版本只认识pointer
- 同时将低版本很高版本能识别的代码都写上
cursor:hand;
cursor:pointer;
子元素设置垂直方向的外边距,会把外边距作用在父元素身上(margin粘连问题)
- 给父元素设置一个透明边框
border:1px solid transprant;
- 给父元素设置超出隐藏
overflow:hidden;
- 给父元素设置padding来调节父元素与子元素之间的间隙
padding会撑大盒子