您现在的位置是:网站首页> 编程资料编程资料
CSS Sprites雪碧图技术基础学习指南详解CSS Sprite雪碧图的应用
2021-09-05
796人已围观
简介 这篇文章主要介绍了CSS Sprites雪碧图基础学习指南,包括对css-sprite雪碧图工具的用法介绍, 需要的朋友可以参考下
引言
雪碧图被运用在众多使用了很多小图标的网站上。相对于把每张小图标以.png格式文件的形式引用到页面上,使用雪碧图只需要引用一张图片,对内存和带宽更加友好。
实现
假设我们通过.toolbtn的类,为应用该类的各元素提供一张背景图片:
背景位置,可以通过在background的url()直接定义X,Y轴的值,或者通过background-position属性来添加。例如:
id=btn1的元素背景左移20px,id=btn2的元素背景左移40px(假设这两个元素的都添加了toolbtn类,应用了上面样式定义的图片效果)
类似的,你也可以使用下面的方式添加hover的状态:
- #btn:hover {background-position: [pixels shifted rightright]px [pixels shifted down]px;}
CSS雪碧的基本原理是把你的网站上用到的一些图片整合到一张单独的图片中,从而减少你的网站的HTTP请求数量。该图片使用CSS background和background-position属性渲染(值得一提的是,这也就意味着你的标签变得更加复杂了,图片是在CSS中定义,而非标签)。
使用css-sprite雪碧图工具
可能是最好用的雪碧图工具了,好吧,至少是我用过最好用的。
首先安装css-sprite,安装这里很坑,等我最后再说。
我是使用gulp来构建前端代码,所以还需要安装gulp和gulp-if,安装好之后就可以开始配置啦。
新建一个task:
全选复制放进笔记var gulp = require('gulp');
- var gulpif = require('gulp-if');
- gulp.task('sprites',function(){
- gulp.src('img/icon/*.png') //这是要合并的图片的路径
- .pipe(sprite({
- name: 'icon', //定义一个名称
- style: '_icon.scss', //这是生成的样式文件
- format: 'png', //png格式的图片
- orientation: 'left-right', //雪碧图合并的方向,也可以设置成垂直或水平
- cssPath: '#{$icon-sprite-path}', //雪碧图的路径变量
- template: './sprite-tpl.mustache', //scss生成的模板
- processor: 'scss' //生成的样式文件的格式
- }))
- .pipe(gulpif('*.png', gulp.dest('img/'), gulp.dest('css/')));
- });
scss的模板使用mustache:
- {{#items}}
- ${{name}}: {{px.offset_x}} {{px.offset_y}} {{px.width}} {{px.height}};
- {{/items}}
- @mixin sprite-width($sprite) {
- width: nth($sprite, 3);
- }
- @mixin sprite-height($sprite) {
- height: nth($sprite, 4);
- }
- @mixin sprite-position($sprite) {
- $sprite-offset-x: nth($sprite, 1);
- $sprite-offset-y: nth($sprite, 2);
- background-position: $sprite-offset-x $sprite-offset-y;
- }
- @mixin sprite($sprite) {
- @include sprite-position($sprite);
- @include sprite-width($sprite);
- @include sprite-height($sprite);
- }
- {{#sprite}}
- {{class}} {
- background-repeat: no-repeat;
- overflow: hidden;
- border: none;
- background: url('{{{escaped_image}}}?v=#{$version}');
- @include inline-block();
- vertical-align: middle;
- font-style: normal;
- color:$icon-font-color;
- }
- {{/sprite}}
- {{#items}}
- .{{name}}{
- @include sprite(${{name}});
- }
- {{/items}}
搞定!就是那么简单。
现在只需要把图片丢到icon文件夹里面,运行下gulp sprites,就可以生成一张雪碧图icon.png和相对应的scss样式文件_icon.scss了,也可以再新建一个监听的任务,监听icon文件夹,这样就可以实时生成了。
我把_icon.scss贴出来:
- $icon-qq: -262px -161px 60px 60px;
- $icon-email: -332px -161px 60px 60px;
- $icon-skype: -5px -252px 60px 60px;
- $icon-phone: -75px -252px 60px 60px;
- @mixin sprite-width($sprite) {
- width: nth($sprite, 3);
- }
- @mixin sprite-height($sprite) {
- height: nth($sprite, 4);
- }
- @mixin sprite-position($sprite) {
- $sprite-offset-x: nth($sprite, 1);
- $sprite-offset-y: nth($sprite, 2);
- background-position: $sprite-offset-x $sprite-offset-y;
- }
- @mixin sprite($sprite) {
- @include sprite-position($sprite);
- @include sprite-width($sprite);
- @include sprite-height($sprite);
- }
- .icon {
- background-repeat: no-repeat;
- overflow: hidden;
- border: none;
- background: url('#{$icon-sprite-path}/icon.png?v=#{$version}');
- @include inline-block();
- 提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- CSS代码编写的一些性能优化技巧总结深入理解CSS @font-face性能优化网站前端性能优化之javascript和css篇CSS性能优化提高css性能的方法 网站性能优化之CSS无图片技术CSS 网站性能优化笔记对css性能优化的一点看法css性能优化-will-change使用详解
- 使用CSS3实现多列布局与多背景的技巧CSS3实现多背景模拟动态边框的效果CSS3点击按钮实现背景渐变动画效果CSS3条纹背景制作的实战攻略用CSS3实现背景渐变的方法css3中背景尺寸background-size详解使用CSS3的背景渐变Text Gradient 创建文字颜色渐变多重CSS背景动画实现方法示例CSS3之多背景background使用示例CSS3之背景尺寸Background-size使用介绍css3背景_动力节点Java学院整理
- 详解CSS3 Media Queries中媒体属性的使用 CSS3 @media的基本用法总结详解使用CSS3的@media来编写响应式的页面 CSS3 media queries + jQuery实现响应式导航css3 media 响应式布局的简单实例css3media响应式布局实例CSS3中的Media Queries学习笔记使用 CSS3 中@media 实现网页自适应的示例代码
- CSS3媒体查询Media Queries基础学习教程CSS3中媒体查询结合rem布局适配手机屏幕纯js和CSS3媒体查询制作简单的响应式导航菜单特效源码详解CSS3 Media Queries中媒体属性的使用 使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法CSS3媒体查询(Media Queries)介绍css3 响应式媒体查询的示例代码
- CSS黑魔法之计数器counter的使用技巧CSS计数器counter()的用法简介CSS计数器(序列数字字符自动递增)详解
- 通过CSS3的object-fit来调整图片适配尺寸的技巧简介浅谈CSS中的 object-fit 与 object-position的使用
- CSS3中currentColor关键字的妙用
- 魔幻般冒泡背景的CSS3按钮动画CSS3鼠标滑过图片效果 用Font Awesome库实现悬停图标基于CSS3实现鼠标滑过图片上移代码纯CSS3实现鼠标滑过按钮动画第二节
- 你值得拥有的CSS下拉菜单效果纯CSS实现下拉菜单的示例代码CSS3模拟动画下拉菜单效果CSS导航栏及弹窗示例代码CSS下拉菜单简单制作教程 css制作黑色经典导航下拉菜单基于CSS实现的4级下拉菜单效果代码CSS实现的灰色下拉菜单效果代码纯CSS实现的大型下拉菜单的示例代码
- 使用div+CSS将页脚始终控制在页面最下方的方法css三种方法实现div在浏览器水平居中一个div在浏览器水平居中的实现方法div+CSS制作类似微信对话气泡效果的实例总结EXCEL表格中的#DIV/0!等符号怎么全部当计算?让DIV水平垂直居中的两种完美方法推荐学习DIV+CSS网页布局之混合布局学习DIV+CSS网页布局之三列布局学习DIV+CSS网页布局之两列布局学习DIV+CSS网页布局之一列布局Div+CSS对HTML的table表格定位用法实例
点击排行
本栏推荐
