对角线排列的背景图片拼合技术

问说网 · 发布于 2015-02-28 · 字数3247 · 浏览 1935 · 评论 0

在字体图标还没有广泛使用之前,我们一般都是使用的png图片,那时候为了更好的优化网页,减少网页的HTTP请求,我们将很多的图标放置在一张图片上,然后通过CSS的背景定位显示特定位置上的图标,这就是我们熟知的CSS Sprites。

这个构想是非常好的解决方法,可是在实际的使用过程中,你可能会发现,一定区域内由于显示的标签很大,会出现其他背景图上的图标,例如下面的这张图:

sprite chunks超出

我们不得不增加背景图上面,图标的间距不管是X轴还是Y轴,又得重新去计算图标的位置修改代码。

那么这个问题有没有解决方法呢,针对上面的图片出现的问题,我们可以将我们的图标水平排列,然后给以足够的距离,但是如果有很多的图标,那么这张图可能会很长很长,体积也足够大。

对角线精灵

当你在想如果排列这些图标的时候,不管是水平排列还是垂直排列,你有没有想过对角线排列呢?我找了半天也没找到任何提及一个对角线的精灵。我不知道这是否意味着这是一个新的想法,或一个坏的,没有人愿意出版。我希望是前者。

diagonal-in-action

不幸的是有一个文件大小的权衡。你增添了许多未使用的空白。一个30左右的精灵,我从组件垂直堆叠对角堆叠,只有约10%的大小增加。另外,约有60的图像,它增加了45%。10%的增长是很容易的获得利益的燕子。45%是努力一点。你的可能不一样。

sprite-diagonal

因为你没有把你的精灵部件之间的间距(我做很多的垂直和水平,允许一小部分操纵每)精灵尺寸更小。我的60个精灵图像的组件之间的空间是2142px 50px高。间隔了200px组件之间就超过8000px。使用相同的60组对角的精灵,用10px填充结束被周围1500px高和宽。据我所知,这只对Opera浏览器。我找不到对具有大尺寸问题的任何其他浏览器的信息,但希望如果你知道其他问题听取反馈。

所以,你可以在实践中看到这一点,我创建了一个简单的10分量的精灵从几个图标famfamfam丝绸图标集(见上图)。你可以查看示例页显示50px,200px和对角间隔的精灵。的filesizes和尺寸了:50px–×610 5723字节16,200px–×1960 5967字节16,对角线–×250 6554字节250。

制作对角线精灵

当我正常的垂直堆叠的精灵我用精彩的在线工具CSS Sprite Generator。我注意到,后端是开放源代码的grabbed a copy

在获得所需部件安装在我的本地机器后(后疼痛明显,后期),我调整他们的代码在一个对角线的精灵输出。目前的代码是快速和肮脏的种因为我不知道是去工作。如果有兴趣,我就可以,请让我知道在下面的评论中,我就可以把它清理和释放。

最后我认为这是问题,我碰到一个不错的解决方案。它可能不适合每一个人,文件大小增加是值得考虑的,但它是在后面的口袋里一个有趣的选择。我想听听你的意见对这个解决方案。

译文:http://www.aaronbarker.net/2010/07/diagonal-sprites/

本文系作者 问说网 授权问说网发表,并经问说网编辑,转载请注明出处和 本文链接

相关文章

  • 2016-03-26Pjax无刷新加载插件和运行原理介绍
  • 2016-03-08分享Perl中常见计算运算符
  • 2016-07-05环境搭建:php7.0.8 + Apache2.4 + MySQL5.7.13 + phpMyAdmin4.6.3
  • 2016-07-06Java异常处理
  • 2016-07-06正则表达式
  • 2016-07-06POI
  • 2016-07-12phpStudy让天下没有难配的PHP环境
  • 2016-07-15详解MHA在Mac上的安装编译和配置
  • 发布评论

    为您推荐

    问说网 · 发布于 2015-01-14

    任何编程语言都是有门槛的

    任何语言都是有门槛的,这是因为它们都面向解决编程问题,而即使在不谈到任何语言要素的情况下,编程这个小字眼实际上都是一个巨大的问题,因为它首先要解决三大问题( 我…

    Spring开源的J2EE开源应用程序框架
    问说网 · 发布于 2015-07-06

    Spring开源的J2EE开源应用程序框架

    在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的、强壮的 J2EE 应用程序。developer…

    Mapsed.js基于jQuery的谷歌地图插件
    问说网 · 发布于 2015-12-24

    Mapsed.js基于jQuery的谷歌地图插件

    谷歌地图插件Mapsed.js是比较好的选择,使用起来简单,无需注册地图接口之类的复杂过程,就能轻松的在网页上展示地图效果,Mapsed.js基于jQuery的…

    问说网 · 发布于 2016-03-11

    如何让DIV中的内容垂直居中

    虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处。比如表格布局中的垂直居中就是Div布局的一大弱项,不 过好在千变万化的CS…

    问说网 · 发布于 2016-05-02

    FileReader.js在浏览器中读取文件信息

    FileReader.js是一个简单的插件,封装了HTML5中的 FileReader interface 方法,在使用上更加方便,而且是一个独立的插件,不依赖…

    Vincent · 发布于 2016-07-06

    Java Web的安全验证机制

    部署描述符中的security-constraint元素允许不通过编程就可以限制对某个资源的访问。

    Java异常处理
    Vincent · 发布于 2016-07-06

    Java异常处理

    异常类 Throwable类是 Java 语言中所有错误(Error)或异常(Exception)的超类 异常处理 异常声明(消极) 异常声明使用关键字thro…

    LionBars创建类似OSX Lion操作系统风格的滚动条
    问说网 · 发布于 2016-07-14

    LionBars创建类似OSX Lion操作系统风格的滚动条

    今天介绍一款超酷的帮助你生成OSX式样的滚动条的jQuery插件Lionbars,使用这个插件,你可以快速的生成一个OSX风格的滚动条。绝对能够让你的UI界面充…

    问说网手机版

    躺着 站着 跪着轻松访问

    更多详情 关于作者

    问说网

    问说网分享与设计有关的文章素材界面和作品,提供设计教程、素材分享、界面欣赏、编程设计、设计书籍、设计师导航等内容,你可以在这里阅读、学习、分享、交流。

    13172 文章
    497 评论
    2104 人气

    更多 热门话题

    APP界面

    关注 APP界面

    文章 41506 · 浏览 3398

    APP欣赏

    关注 APP欣赏

    文章 41427 · 浏览 3128

    APP手机界面

    关注 APP手机界面

    文章 41417 · 浏览 3271

    图片素材

    关注 图片素材

    文章 29463 · 浏览 2648

    高清图片

    关注 高清图片

    文章 26530 · 浏览 2863

    更多 推荐作者

    关注 惢碎葬爱

    文章 96 · 评论 0

    关注 倾听寂寞

    文章 83 · 评论 0

    关注 走了留下什么

    文章 110 · 评论 0

    关注 莪很迷茫

    文章 97 · 评论 0

    关注 流浪的脚步

    文章 86 · 评论 0

    关注 思念像咒语

    文章 102 · 评论 0

    
    顶部 反馈 评论 底部

    意见反馈

    感谢您对问说网的支持,提出您在使用过程中遇到的问题或宝贵建议,您的反馈对我们产品的完善有很大帮助。

    您的反馈我们已收到!

    感谢您提供的宝贵意见,我们会在1-2个工作日,通过您留下的联系方式将处理结果反馈给您!