Skip to content

[css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么? #55

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

第17天 解释下 CSS sprites的原理和优缺点分别是什么?

Activity

changed the title [-][css] 第17天 请描述margin边界叠加是什么及解决方案[/-] [+][css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么?[/+] on May 2, 2019
github-linong

github-linong commented on May 22, 2019

@github-linong

我来说下我的观点
原理:
多张图合并成一张图

优点&解决的问题

  1. hover效果,如果是多个图片,网络正常的情况下首次会闪烁一下。如果是断网情况下,就没图片了。sprites 就很好的解决了这个问题(第一次就加载好了)。
  2. 合并了请求数
  3. 制作帧动画方便

缺点

  1. 位置不好控制,有时候容易露底。。比如说3030的按钮,图片只有1212保不齐就漏出其他图片了。
  2. 合成时候比较费时(有工具代替)
  3. 位置计算费时(有工具代替)
  4. 更新一部分的时候,需要重新加载整个图片,缓存失效。
tzjoke

tzjoke commented on May 29, 2019

@tzjoke

在http2下,雪碧图最大的优势减少请求数已经荡然无存。。

Vi-jay

Vi-jay commented on Jul 26, 2019

@Vi-jay

原理:多张小图标合并成一张图片,利用background-position来显示相对应的图标
优点:请求数量少,预先加载图标
缺点:难管理,资源大

Konata9

Konata9 commented on Jul 28, 2019

@Konata9

CSS sprites 的原理是将许多小图标或小图片拼成一张大图,然后利用 background-position + 固定的宽高来显示对应大图位置的图片作为背景。Amazon 的图标就是用的 CSS Sprites 拼在一张大图上。

由于合并成了一张图,所以好处就是在于请求数减少。而缺点就在于如果图片拼位置出现错误,在显示的时候就有可能显示不完整或者错位。

Toeat

Toeat commented on Sep 11, 2019

@Toeat

维护起来是真麻烦

aoxiangsky

aoxiangsky commented on Oct 18, 2019

@aoxiangsky

在http2下,雪碧图最大的优势减少请求数已经荡然无存。。
为什么?

hayahayao

hayahayao commented on Oct 28, 2019

@hayahayao

HTTP2多路复用,并行传输,多张图片也只需建立一次HTTP请求

yqh708

yqh708 commented on Nov 26, 2019

@yqh708

原理:把项目需要用到的图标合并成一张大图,在使用的时候通过position定位来展示指定的图标
优点:大大减少了请求次数
确定:定位不太好控制,多用于小图标的展示。

xuxihua

xuxihua commented on Dec 24, 2019

@xuxihua

1.简介

CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许将一个页面涉及到的所有零星图片都包含到一张大图中, 利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位, 访问页面时避免图片载入缓慢的现象。

2.优点

(1)CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;

(2)CSS Sprites能减少图片的字节;

(3)CSS Sprites解决了网页设计师在图片命名上的困扰,只需对一张集合的图片命名,不需要对每一个小图片进行命名,从而提高了网页制作效率。

(4)CSS Sprites只需要修改一张或少张图片的颜色或样式来改变整个网页的风格。

3.缺点

(1)图片合并麻烦:图片合并时,需要把多张图片有序的合理的合并成一张图片,并留好足够的空间防止版块出现不必要的背景。

(2)图片适应性差:在高分辨的屏幕下自适应页面,若图片不够宽会出现背景断裂。

(3)图片定位繁琐:开发时需要通过工具测量计算每个背景单元的精确位置。

(4)可维护性差:页面背景需要少许改动,可能要修改部分或整张已合并的图片,进而要改动css。在避免改动图片的前提下,又只能(最好)往下追加图片,但这样增加了图片字节。
原文链接:https://blog.csdn.net/sunnyjingqi/article/details/83064872

blueRoach

blueRoach commented on Jun 3, 2020

@blueRoach

原理:将页面中所有用到的图片都剪切到一张图片上。
优点:减少请求;便于改变整个样式,只需要换一张图片即可

缺点:

  • 不利于修改,每当你要增加一张图片时,还要从新剪切一张图出来;
  • 定位图片位置麻烦

现在基本没见谁用过这东西了把

yqh708

yqh708 commented on Jun 3, 2020

@yqh708

8 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @smile-2008@haizhilin2013@Konata9@never123450@Toeat

        Issue actions

          [css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么? · Issue #55 · haizlin/fe-interview