美文网首页
前端性能优化-雪碧图及其实现

前端性能优化-雪碧图及其实现

作者: CNSTT | 来源:发表于2019-04-19 12:12 被阅读0次

一、雪碧图的原理

CSS Sprites 因其英文被称为雪碧图
主要用于把一堆小图标整合在一张背景透明的大图上,通过设置对应的位置来显示不同的图片,目的是大幅减轻服务器对图片的请求数量,是前端性能优化的一种方式。

雪碧图示例.png

主要优势

1、减少网页的HTTP请求,提高页面性能
2、减少图片命名的困扰

主要优势

1、需要计算每个图片的位置
2、后期维护困难

二、雪碧图的实现

通过设置每个<i></i>对应的background-position来展现不同位置的图标。
其中第一个参数代表x轴控制左右,第二个参数代表y轴控制上下。
默认情况下为

background-position: 0% 0%;
image.png

当设置x为负数,相当于固定展现框不动,图片向左侧移动,展现的是相对右侧的内容。同理当y为负数,图片向上侧移动,展现的是相对下方的内容。


image.png
<!DOCTYPE html>
<html lang="cn">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 
    <title>测试页面</title>
    <style>
        .item-list {            
            border: 1px solid #333;
            padding: 0;
            width: 200px;
            background-color: #f8f8f8;
        }
        .item-list li {
            list-style: none;
            width: 160px;
            height: 40px;
            margin: 0 20px;
            border-bottom: 1px solid #dedede;
            line-height: 40px;
        }
        li i {
            background:url('http://img.mukewang.com/539a950e00015ba500710200.jpg');
            width: 30px;
            height: 24px;
            display: inline-block;
            vertical-align: middle;
        }
        .p1 i {
           background-position: -40px 0px;
        }
        .p2 i {
           background-position: 0px -24px;
        }
        .p3 i {
           background-position: 0px -48px;
        }
        .p4 i {
           background-position: 0px -72px;
        }
        .p5 i {
           background-position: -40px -72px;
        }
        .p6 i {
           background-position: -40px -48px;
        }
        .p7 i {
           background-position: 0px 0px;
        }
    </style>
</head>

<body>
    <div style="height:400px;">
        <div style="width:600px;height:100%;margin-left:300px;">
            <ul class="item-list">
                <li class="p1"><i></i>商品A</li>
                <li class="p2"><i></i>商品B</li>
                <li class="p3"><i></i>商品C</li>
                <li class="p4"><i></i>商品D</li>
                <li class="p5"><i></i>商品E</li>
                <li class="p6"><i></i>商品F</li>
                <li class="p7"><i></i>商品G</li>
            </ul>
        </div>
    </div>
    
    <script src="js/jquery.min.js"></script>    
     
</body>
</html>
HTML结果.png

谢谢阅读,有帮助的点个❤!

相关文章

  • 前端性能优化-雪碧图及其实现

    一、雪碧图的原理 CSS Sprites 因其英文被称为雪碧图。主要用于把一堆小图标整合在一张背景透明的大图上,通...

  • 前端优化

    前端性能优化的方法有哪些? ①减少http请求,减少请求的体积,比如用雪碧图,gulp或者webpack压缩文件 ...

  • 面试问题总结

    1.前端性能优化的方法有哪些? ①减少http请求,减少请求的体积,比如用雪碧图,gulp或者webpack压缩文...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • 前端面试题套路--终极版(Vue、JavaScript)

    前言 面试题是永远都准备不完的!!!!! 前端常见的一些问题 1.前端性能优化手段? 1. 尽可能使用雪碧图2. ...

  • 性能优化

    常见的性能优化方法: 对资源进行压缩1.压缩图片:雪碧图2.压缩html/css/js文件和后端文件:前端工程化工...

  • 前端性能优化(上)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 为什么要进行前端性能...

  • 前端vue知识汇总

    前端常见的一些问题 1.前端性能优化手段? 1. 尽可能使用雪碧图2. 使用字体图标代替图片3. 对HTML,cs...

  • 前端性能优化:手写实现节流防抖

    前端性能优化:手写实现节流防抖 本文首发于 前端性能优化:手写实现节流防抖[https://gitee.com/r...

网友评论

      本文标题:前端性能优化-雪碧图及其实现

      本文链接:https://www.haomeiwen.com/subject/wzlqgqtx.html