当按钮状态从link切换到hover状态时或者从hover切换到active时,第一次会出现一个闪烁
浏览器在加载页面时需要先加载当前页面,然后再加载页面中引入的外部资源,而外部资源并不是立刻加载的,外部资源需要在被使用时才会被加载(懒加载)
当我们从link切换到hover状态时,需要去加载hover的图片,而加载和显示直接存在一个时间差,这样在图片加载前会出现没有背景图片的情况,导致闪烁
css sprite
解决办法就是把三种状态的按钮放在一张图片上面,这样我们可以一次性加载所有图片,然后通过偏移量来修改我们需要显示的图片,这个技术,我们叫做css sprite(css精灵),这种图我们也叫做雪碧图
优点:
- 将多个图片保存到一个图片中,降低发送请求的次数,增加用户访问速度
- 将多个图片保存到一个图片,也会降低图片的总大小,增加加载速度