css雪碧图(css sprite)

css雪碧图(css sprite),其实质就是一种css图像合并的技术。在我们前端开发过程中也多多少少会用到。很早就打算专门写一个相关的demo,今天就趁着这篇博文给做了。demo见我的github仓库文件,相关实现的代码虽然也easy,但也不在这发了(

):点击打开链接。

使用css sprite的相关案例:去电商网站,打开开发者模式,很多。但是也不只是局限在电商网站里才使用!

前端开发里雪碧图原理:

将很多需要加载的图贴到一起,以图片左上角顶点为原点建立坐标系,然后用background-position:x轴 y轴;来确定在大图中需要的那一张小图的位置即可。简而言之,言而简之就是一个background-position属性。

雪碧图的实现:

关于这里说的实现是指众多小图集成的大图这个过程。

1:ps(photoshop):这个就靠我们伟大的美工了(呸,原谅我口误,是设计师大大),当然作为新时达的大前端我们也还是需要掌握ps滴;

2:相关的sprite自动化生成工具(例如:cssGaga):亲,还有请自行Google哦!(划下重点:不要搜成ladygaga了)

嗯,好像说webpack里也有相关的依赖模块,老规矩:Google(

)。

使用该技术的优点:

减少了加载网页图片时对服务器的请求次数,提高了页面的加载速度。

使用该技术的缺点:

拼图和维护比较麻烦;雪碧图调用的图片不能被打印;内存问题。

适用css sprite的条件:

加载量大的小图, 就是说我们很多页面都会用到小图标啊这类的;还有就是图片是静态的,也就是说时时刷新的新闻图片啊不可用。

css图片的自适应排版

不知道大家有没有在做多个图片排布的时候感觉会有些吃力,尤其是那些图片的长宽都是不规范的时候,直接填充图片容易拉伸,定宽或者定高,最后都会有些超出边界,下面就是我总结的解决方法。

方法一 :css的background属性来设置背景图 知识点总结

background的属性有以下这些:

background-color
background-position
background-size
background-repeat
background-origin
background-clip
background-attachment
background-image

1.background-color就不说了。

2.background-position:属性设置背景图像的起始位置。

3.background-size:规定背景图像的尺寸

4.background-repeat:规定如何重复背景图像。默认地,背景图像在水平和垂直方向上重复。

5.background-origin: 规定背景图片的定位区域。

6.background-clip:规定背景的绘制区域。背景被裁剪到什么位置,和origin属性相似

7.background-attachment:规定背景图像是否固定或者随着页面的其余部分滚动。

今天主叫就是background-size的contain属性,它把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域,很适合做缩略图:

  
  li{
    display: inline-block;
    width: 140px;
    height: 140px;
    border: solid 1px #eee;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
 
 
  • 效果如下:无论尺寸怎么的图片动能很好的适应显示

    用完就会发现,我喜欢直接写img标签,这个都没有img标签了,不要着急,下面就介绍img标签如何实现这个效果

    方法二:img的object-fit: contain;

    object-fit这个css标记,好像有些陌生。先就把它的知识点讲一下详细内容见 张鑫旭博客的这一属性讲解链接

    1.object-fit有以下这些属性

    2.object-fit的兄弟object-position

    object-position 默认值是50% 50%,也就是居中效果和background-position写法和表现都一致。

    例如替换内容一直定位在容器的右下角:

    object-position: 100% 100%;

    例如替换元素相对于右下角20px 10px地方定位:

    object-position: right 20px bottom 10px;

    3.object-fit的适用性

    object-position和object-fit只针对替换元素有作用;

    替换元素:其内容不受CSS视觉格式化模型(中文释义参见这里)控制的元素,比如image, 嵌入的文档(iframe之类)或者applet。比如,img元素的内容通常会被其src属性指定的图像替换掉。替换元素通常有其固有的尺寸:一个固有的宽度,一个固有的高度和一个固有的比率。比如一幅位图有固有用绝对单位指定的宽度和高度,从而也有固有的宽高比率。另一方面,其他文档也可能没有固有的尺寸,比如一个空白的html文档。

    CSS渲染模型不考虑替换元素内容的渲染。这些替换元素的展现独立于CSS。object,video,textarea,input也是替换元素,audio和canvas在某些特定情形下为替换元素。

    使用CSS的content属性插入的对象是匿名替换元素(整段抄袭张老师的)

    4.兼容性ie的方法

    键连接object兼容解决

    实现和background一样的demo

      
      li{
        display: inline-block;
        width: 140px;
        height: 140px;
        border: solid 1px #eee;
      }
      li>img{
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
      
      
  • 以下是两种方法实现的效果

    本站内容来自用户投稿,如果侵犯了您的权利,请与我们联系删除。联系邮箱:835971066@qq.com

    本文链接:http://news.xiuzhanwang.com/post/2238.html

    发表评论

    评论列表

    还没有评论,快来说点什么吧~

    友情链接: