0
点赞
收藏
分享

微信扫一扫

按钮变换及通用方式(雪碧图使用)

49路末班车 2022-08-13 阅读 32

目录

一、流程

二、不完美方式

1、做法

2、解释

三、雪碧图方式

1、实现

2、解释

四、代码

1、不完美方式

2、雪碧图方式


一、流程

(1)正常情况下是普通按钮

(2)当鼠标移入时,则会变色

(3)当鼠标点击时,则会变黑

(4)以背景图方式设置按钮点击,达到上述效果

二、不完美方式

1、做法

(1)找到三张对应效果的图片

(2)分别对原元素、hover伪类、active伪类粘贴不同的图片

2、解释

(1)这种方式能解决问题,是常规思路

(2)但是可能第一次加载网页可能会出现空白加载的问题

-浏览器会按需加载资源或者图片

-在最开始的时候,会发送请求解析网页,因为原元素会最先展示,所以会解析原元素的图片

-但因为hoveractive没有使用,所以不会第一时间解析和加载后面两个伪类的图片

三、雪碧图方式

1、实现

将所有状态的图片贴在一张中,通过给不同元素或者元素不同伪类设置偏移量,从而展示图片的不同位置

如图,这就是一个雪碧图

2、解释

(1)这种方式是开发的主流

(2)且因为只需要加载一张图片,加载速度快,节省资源,有更好用户体验

四、代码

注意:这里的图片均来自网上,想要重现可自行查找图片,或者前面的雪碧图可以直接使用

1、不完美方式

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>按钮变换</title>
    <style>
      /* 
        浏览器会按需加载资源或者图片,在最开始的时候,会发送请求
        解析网页,因为a会最先展示,所以会解析a的图片
        但因为hover和active没有使用,所以不会第一时间解析和加载

        */
      a {
        width: 101px;
        height: 101px;
        display: block;
        background-image: url("../src/img_exercise/1.png");
      }
      a:hover {
        background-image: url("../src/img_exercise/2.png");
      }
      a:active {
        background-image: url("../src/img_exercise/3.png");
      }
    </style>
  </head>
  <body>
    <a href="javascript:;"></a>
  </body>
</html>

2、雪碧图方式

注意:这里的代码使用的图片就是前面的三个按钮在一起的图片

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>按钮变换升级版/雪碧图初应用</title>
    <style>
      a {
        background-image: url("../src/img_exercise/0.jpg");
        display: block;
        width: 101px;
        height: 101px;
        background-position: -104px -143px;
      }
      a:hover {
        background-position: -249px -143px;
      }
      a:active {
        background-position: -393px -143px;
      }
    </style>
  </head>
  <body>
    <a href="javascript:;"></a>
  </body>
</html>

 

举报

相关推荐

0 条评论