目录
(1)正常情况下是普通按钮
(2)当鼠标移入时,则会变色
(3)当鼠标点击时,则会变黑
(4)以背景图方式设置按钮点击,达到上述效果
(1)找到三张对应效果的图片
(2)分别对原元素、hover伪类、active伪类粘贴不同的图片
(1)这种方式能解决问题,是常规思路
(2)但是可能第一次加载网页可能会出现空白加载的问题
-浏览器会按需加载资源或者图片
-在最开始的时候,会发送请求解析网页,因为原元素会最先展示,所以会解析原元素的图片
-但因为hover和active没有使用,所以不会第一时间解析和加载后面两个伪类的图片
将所有状态的图片贴在一张中,通过给不同元素或者元素不同伪类设置偏移量,从而展示图片的不同位置
如图,这就是一个雪碧图
(1)这种方式是开发的主流
(2)且因为只需要加载一张图片,加载速度快,节省资源,有更好用户体验
注意:这里的图片均来自网上,想要重现可自行查找图片,或者前面的雪碧图可以直接使用
- 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>
注意:这里的代码使用的图片就是前面的三个按钮在一起的图片
- 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>