如何用css显示一个图片中多个小图标

CSS显示一个大图片中的多个小图标,主要是用background-position这个属性来控制的。
先看下面这张300*300的大图片,每个小图标是100*100的。(这张图片名字叫9pic2.jpg)

在这里插入图片描述

首先先将你要放置背景小图标的元素的大小设置成图片里图标的实际大小,用width和height设置,然后用background-image把背景图片放进去,比如:

.showImage{
    background-image: url(9pic2.jpg);
    width: 100px;
    height: 100px;
}

这么设置完毕后,大图片左上角那个小图标(这里假设是100*100的小图标)就出来了。

然后用background-position属性调整背景图片的位置,它有两个值分别表示背景图片沿着x和y轴移动的距离。你想象背景图片一开始是和当前元素左上角重合,但背景图片是可以移动的,由于浏览器坐标系x轴正向右,y轴正向下。所以,背景图片一般需要向左移动,和向上移动,这样移动的值往往都是负的。

比如上面第2张小图标,需要把大图片沿着x方向向左移动100px,y方向不变,设置background-position属性如下:

#item2{
    background-position: -100px 0;
}

其他的同理。

最后贴出来一个例子,看明白了这个属性就懂了。
用到的另一张图片名字叫9pic1.jpg,先贴出来

在这里插入图片描述

<!doctype html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>背景background-position切图</title>
    <style>
        .showImage{
            background-image: url(9pic2.jpg);
            width: 100px;
            height: 100px;
        }
        .showImage:hover{
            background-image: url(9pic1.jpg);
        }
        ul{
            list-style: none;
        }
        ul li{
            float: left;
            margin: 20px;
        }
        #item1{
            background-position: 0 0;
        }
        #item2{
            background-position: -100px 0;
        }
        #item3{
            background-position: -200px 0;
        }
        #item4{
            background-position: 0 -100px;
        }
        #item5{
            background-position: -100px -100px;
        }
        #item6{
            background-position: -200px -100px;
        }
        #item7{
        background-position: 0 -200px;
        }
        #item8{
            background-position: -100px -200px;
        }
        #item9{
            background-position: -200px -200px;
        }
    </style>
    </head>
    <body>
        <div class="container">
            <ul>
                <li id="item1" class="showImage"></li>
                <li id="item2" class="showImage"></li>
                <li id="item3" class="showImage"></li>
                <li id="item4" class="showImage"></li>
                <li id="item5" class="showImage"></li>
                <li id="item6" class="showImage"></li>
                <li id="item7" class="showImage"></li>
                <li id="item8" class="showImage"></li>
                <li id="item9" class="showImage"></li>
            </ul>
        </div>
    </body>
</html>

这个例子把那个图片打散,横排在页面上,还用:hover伪类实现了你鼠标移动到上面就从黑白变彩色。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讓丄帝愛伱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值