按钮练习

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7             /*.btn:link{
 8                 
 9                 display: block;
10                 width: 120px;
11                 height: 120px;
12                 background-image: url(img/btn/link.png);
13                 background-repeat: no-repeat;
14             }
15             
16             .btn:hover{
17                 background-image: url(img/btn/hover.png);
18             }
19         
20             .btn:active{
21                 background-image: url(img/btn/active.png);
22             }*/
23             
24             /*使用整合的图片*/
25             .btn:link{
26                 display: block;
27                 width: 95px;
28                 height: 100px;
29                 background-image: url(img/btn/together.jpg);
30                 background-repeat: no-repeat;
31             }
32             .btn:hover{
33                 background-position: -78px;
34             }
35             .btn:active{
36                 background-position: -156px;
37             }
38         </style>
39     </head>
40     <body>
41         <a href="#" class="btn"></a>
42     </body>
43 </html>

使用三张图片时

做完功能以后,发现在第一次切换图片时,会发现图片有一个非常快的闪烁,这个闪烁会造成一次不佳的用户体验

产生问题的原因:

背景图片是以外部资源的形式加载进网页的,浏览器每加载一个外部资源就需要单独发送一次外部请求

但是我们外部资源并不是同时加载,浏览器会在资源使用才会去加载资源

这个练习,一上来浏览器只会加载link.png,由于hover和active的状态没有马上触发,

所以hover.png和active.png并不是立即加载的

由于加载图片需要一定的时间,所以在加载和显示过程中会有一段时间,背景图片无法显示,导致闪烁的情况

 

 

 使用一张图片

 

为解决该问题,可以将三张图片整合为一张图片,这样可以三张图片一起加载,就不会出现闪烁的问题了,然后通过background-position来切换要显示的图片位置,这种技术叫做图片整合技术(css-sprite)

优点:

1,将多个图片整合到一张图片里,浏览器只需要发送一次请求,可以同时加载多个图片,提高访问效率,提高用户体验

2,将多个图片整合为一张图片,减小了图片的总大小,提高请求的速度,增加了用户体验

 

 

 

 

posted @ 2019-11-05 22:05  大轩  阅读(146)  评论(0)    收藏  举报