1. 背景图定位上一小节的代码运行过后看似好像没什么问题,那么我们来给它加上个边框试试: 加上边框后发现它其实是有点歪了,偏左上角一点,这是因为background-image属性默认是定位在元素的左上角的。 2. 来看一下定义背景图位置的语法怎么写:
所以这里我们可以给它一个定位值: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSS Sprites</title> <style> * { padding: 0; margin: 0; } /* 这段代码是为了居中显示,不是重点,看不懂的话可以无视 */ body { height: 100vh; display: flex; align-items: center; justify-content: center; } .sprite { /* 宽高要设置的和图标一样大或者稍微大一点点 */ width: 20px; height: 18px; /* 背景图地址设置为雪碧图的位置 */ background-image: url(http://img.mukewang.com/wiki/5ed9bc1809824eef00180038.jpg); /* 禁止背景图重复 */ background-repeat: no-repeat; /* 令背景图显示在正确的位置 */ background-position: top; /* 边框,便于对比背景图所在位置 */ border: 1px solid black; } </style> </head> <body> <div class="sprite"></div> </body> </html> 运行结果: 3. 小结学会了背景图片的定位就好像学会了一门魔法,用这个魔法可以随意的控制Css Sprite的各项图标。 但是这些都是静态的,固定在哪个位置就是哪儿了,如果想让它有一些交互效果的话还是需要动态的去更改背景图的定位。 下一小节我们将模仿百度首页的交互效果来教会大家如何动态更改定位。 |