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

html-css023

如何用css显示一个图片中多个小图标?,第1张

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伪类实现了你鼠标移动到上面就从黑白变彩色。

可以在阿里图库中下载相应的图标,下到本地后

第一步:拷贝项目下面生成的font-face

@font-face {font-family: 'iconfont'

src: url('iconfont.eot')

src: url('iconfont.eot?#iefix') format('embedded-opentype'),

url('iconfont.woff') format('woff'),

url('iconfont.ttf') format('truetype'),

url('iconfont.svg#iconfont') format('svg')

}

第二步:定义使用iconfont的样式

.iconfont{

font-family:"iconfont" !important

font-size:16pxfont-style:normal

-webkit-font-smoothing: antialiased

-webkit-text-stroke-width: 0.2px

-moz-osx-font-smoothing: grayscale}

第三步:挑选相应图标并获取字体编码,应用于页面

<i class="iconfont">&#x33</i>

font-class引用

font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。

与unicode使用方式相比,具有如下特点:

兼容性良好,支持ie8+,及所有现代浏览器。

相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。

因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。

不过因为本质上还是使用的字体,所以多色图标还是不支持的。

使用步骤如下:

第一步:拷贝项目下面生成的fontclass代码:

//at.alicdn.com/t/font_8d5l8fzk5b87iudi.css

第二步:挑选相应图标并获取类名,应用于页面:

<i class="iconfont icon-xxx"></i>

css制作三角图标像以上的三角形小图标,实现的方法有很多种,大部分人会使用图片来实现,其实纯css也可以实现的,方法很简单。下面是正方形的实现方法,四边给个border,然后设置下颜色就可以了,记得加上overflow:hidden,不然IE6下是有问题的.Box { width:0height:0overflow:hiddenborder-left:40px solid #00Fborder-bottom:40px solid #F00border-right:40px solid #F90border-top:40px solid #0F0}三角形的实现方法是把其他三边的颜色设为一样就可以了.Box { width:0height:0overflow:hiddenborder-left:40px solid #00Fborder-bottom:40px solid #FFFborder-right:40px solid #FFFborder-top:40px solid #FFF}