[css] 你是怎么设计css sprites(精灵图)的?有哪些技巧?

[css] 你是怎么设计css sprites(精灵图)的?有哪些技巧?

首先肯定不会去用PS量,那太费时间了~
没有webpack以前,用Gulp的gulp.spritesmith插件,这里附上配置源码/* gulpfile.js */
const gulp = require('gulp');
const gulpLoadPlugins = require('gulp-load-plugins');
const $ = gulpLoadPlugins();/*** @desc 雪碧图自动合成*/
gulp.task('sprite', function () {return gulp.src('src/assets/sprite/*.png')//需要合并的图片地址.pipe(spritesmith({imgName: 'assets/sprite.png',// cssName: 'css/_sprite.scss',cssName: 'scss/_sprite.scss',padding: 5,algorithm: 'binary-tree',cssTemplate: function (data) {var arr = [];data.sprites.forEach(function (sprite) {arr.push(".icon-" + sprite.name + "{" +"background-image: url('" + sprite.escaped_image + "');" +"background-position: " + sprite.px.offset_x + " " + sprite.px.offset_y + ";" +"width:" + sprite.px.width + ";" +"height:" + sprite.px.height + ";" +"display: inline-block;" +"vertical-align: middle;" +"}\n");});return arr.join("");}})).pipe(gulp.dest('dist/')).pipe(gulp.dest('src/'));
});把图放入对应的文件夹中,然后根据文件名对应的类名引用就行了
webpack的话可以使用webpack-spritesmith,安装了webpack-spritesmith之后var SpritesmithPlugin = require('webpack-spritesmith');
//module.exports = {//代码}
plugins: [new SpritesmithPlugin({// 目标小图标src: {cwd: path.resolve(__dirname, './src/assets/imgs/icons'),glob: '*.png'},// 输出雪碧图文件及样式文件target: {image: path.resolve(__dirname, './dist/sprites/sprite.png'),css: path.resolve(__dirname, './dist/sprites/sprite.css')},// 样式文件中调用雪碧图地址写法apiOptions: {cssImageRef: '../sprites/sprite.png'},spritesmithOptions: {algorithm: 'top-down'}})
]在index.html中引入css<link rel="stylesheet" type="text/css" href="./dist/sprites/sprite.css" />最后通过class引入小图标即可

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS沙盒文件夹及获取路劲方法

iPhone沙盒中有四个文件夹&#xff0c;分别是&#xff1a;documents、tmp、app、library. 1、Documents &#xff1a;用户生成的文档或数据&#xff0c;或者应用不能重新新创建的数据&#xff0c;存储在/Documents目录下&#xff0c;并且会被自动备份到iCloud&#xff1b; 2、A…

springboot多环境加载yml和logback配置

大家好&#xff0c;我是烤鸭&#xff1a;这是一篇关于springboot多环境加载yml和logback配置文件。环境&#xff1a;开发工具 idea(推荐)/eclipse(对yml支持不好)jdk 1.8springboot 1.5.6.RELEASE 1. yml和logback文件1.1 结构,如图所示&#xff1a;1.2 application.yml (默…

[css] 请描述下你对translate()方法的理解

[css] 请描述下你对translate()方法的理解 Single length/percentage value一个长度值或百分比表示X轴和Y轴使用一样的值进行二维上的平移。等同于translate() &#xff08;2D 平移&#xff09;函数指定单个值。Two length/percentage values两个长度值或百分比表示在二维上分…

laydate闪退

1,解决方案一&#xff1a;加 trigger: ‘click’ laydate.render({ elem: this ,format:‘yyyy-MM-dd HH:mm:ss’ ,type:‘datetime’ ,trigger: click’ }); 解决方案二&#xff1a; $("#"dateControlId).removeAttr(“lay-key”);

汇编实验二

》实验结论 1.使用Debug将下面的程序写入内存&#xff0c;逐条执行&#xff08;见1-1&#xff09;&#xff0c;根据指令执行后的实际情况填空&#xff08;见1-2&#xff09; p.s. 已经按实验要求将使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H…

springboot中的拦截器interceptor和过滤器filter,多次获取request参数

大家好&#xff0c;我是烤鸭&#xff1a; 这是一篇关于springboot的拦截器(interceptor)和过滤器(Filter)。 先说一下过滤器和拦截器。区别&#xff1a;1. servlet请求&#xff0c;顺序&#xff1a;Filter ——> interceptor。2. Filter的作用是对所有进行过滤&#xff…

[css] 怎样去除图片自带的边距?

[css] 怎样去除图片自带的边距&#xff1f; 空隙产生的原因&#xff0c;换行符&#xff0c;空格符&#xff0c;制表符等你空白符&#xff0c;字体不为0的情况下&#xff0c;都会产生一个字符的空隙&#xff0c;空格符好会占据一定宽度&#xff0c;使用inline-block会产生元素间…

Java删除list

方案1>&#xff1a;for循环删除&#xff1a;注意从大到小遍历&#xff0c;不是从小到大&#xff1b; /*** 删除选中项*/private void deleteCheckedItem() {// list&#xff1a;初始化所有的数据&#xff1b;count&#xff1a;最后角标int count list.size() - 1 ;//从大到…

Unable to locate the default servlet for serving static content. Please set the 'defaultServletName'

大家好&#xff0c;我是烤鸭。 今天分享一个莫名其妙的异常及解决方式。 环境&#xff1a; tomcat6 jdk 1.6 异常主体&#xff1a; java.lang.IllegalStateException: Unable to locate the default servlet for serving static content. Please set the defaultServletName p…

iptables原理及规则

iptables简介和原理 我们先来了解以下社么是防火墙 防火墙&#xff1a;隔离功能&#xff0c;工作在网络或主机边缘&#xff0c;对进出网络或主机的数据包基于一定的规则检查&#xff0c;并在匹配某规则时由规则定义的行为进行处理的一组功能的组件&#xff0c;基本上的实现都是…

[css] 让你手写一个reset的文件,你应该怎么写?要考虑哪些方面呢?

[css] 让你手写一个reset的文件&#xff0c;你应该怎么写&#xff1f;要考虑哪些方面呢&#xff1f; 肯定首先考虑的是浏览器本身的样式&#xff0c;还有浏览器兼容。margin&#xff0c;padding >0ul,ol list style:nonea,text-decoration:nonefont-size:100%上标&#xff…

利用cookies跳过登陆验证码

前言在爬取某些网页时&#xff0c;登陆界面时经常遇到的一个坎&#xff0c;而现在大多数的网站在登陆时都会要求用户填写验证码。当然&#xff0c;我们可以设计一套机器学习的算法去破解验证码&#xff0c;然而&#xff0c;验证码的形式多种多样&#xff0c;稍微变一下&#xf…

org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types

大家好&#xff0c;我是烤鸭&#xff0c;记录一个初级异常&#xff0c;百度搜索结果不多&#xff1a; Caused by: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.xxx.xxx with invalid types 。 java.lang.NoSuchMethodException: com.xx…

[css] 你知道css的预处理器和后处理器都有哪些吗?它们有什么区别呢?

[css] 你知道css的预处理器和后处理器都有哪些吗&#xff1f;它们有什么区别呢&#xff1f; 目前最主流的 CSS 预处理器&#xff1a;Sass、LESS、Stylus 。优缺点优点&#xff1a;语言级逻辑处理&#xff0c;动态特性&#xff0c;改善项目结构缺点&#xff1a;采用特殊语法&…

[Swift]八大排序算法(八):基数排序

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/ &#xff09;➤GitHub地址&…

推一波JAVA学习公众号

大家好&#xff0c;我是烤鸭&#xff0c;今天不水了。分享一波java学习公众号。从基础到架构都有&#xff0c;另外说一句&#xff0c;注意身体吧。另外说一句&#xff0c;本文不定时更新。1. JAVA思维导图2. 程序员小灰可爱的小仓鼠3. 码农每日一题4. JAVA后端技…

springmvc限流解决方案

本文采用3中限流方案&#xff1a; 1&#xff0c;谷歌的guava框架 2&#xff0c;使用redis技术 3&#xff0c;使用lua redis 技术 限流方案类型 1&#xff0c;令牌桶限流&#xff08;guava&#xff09; 2&#xff0c;计数器限流&#xff08;redis&#xff09; 各位看官可根…

二叉树的三种遍历(递归与非递归) + 层次遍历

<转载于 >>> > 二叉树是一种非常重要的数据结构&#xff0c;很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式&#xff0c;因为树的本身就是用递归定义的&#xff0c;因此采用递归的方法实现三种遍历&#xff0c;不仅代码简洁…

springboot使用mongodb

大家好&#xff0c;我是烤鸭&#xff1a;这是一篇关于springboot项目中使用mongodb。 环境&#xff1a;jdk 1.8springboot 1.5.6.RELEASEmaven 3.5 1. mongodb在springboot中的配置springboot集成这个三方插件就是简单&#xff0c;只需要引入依赖&#xff0c;在properties或者…

[css] 请使用css画一个圆,方法可以多种

[css] 请使用css画一个圆&#xff0c;方法可以多种 <div class"circle"></div>1.border-radius.cirlce{width:10vw; height:10vw; background:gray;border-radius:50%; }2.clip-path.circle{width:10vw; height:10vw; background:gray;clip-path: circl…