谈谈CSS预处理技术中for循环的应用-CSS Sprite

各种新技术的出现,推动着Web前端技术飞速发展,在提升用户体验的同时也方便开发者;

在前端优化时,我们使用CSSSprite技术,把多个图片合在一张图片上,然后通过background-image,background-position来定位现实不同效果,这样来达到减少HTTP请求,毕竟HTTP请求是相当昂贵的,但是HTTP请求是少了,开发人员工作量就大了,要定位图片不是一件很方便的事情,非常麻烦,要一个一个地计算:

其实我们可以有点技巧,让图片排列有点规律,这样可以减少大量时间:

假如我们的图片是规律的,如每个区域高都是30px,这样我们可能通过结合Sass里for来快速现实对图片的定位:

scss:

@for $i from 0 to 17{
.d-icon-#{$i}{ background-position: -0 -#{+ $i*30}px; }
}

编译结果:css


.d-icon-0 { background-position: 0 -0px; }

.d-icon-1 { background-position: 0 -30px; }

.d-icon-2 { background-position: 0 -60px; }

.d-icon-3 { background-position: 0 -90px; }

.d-icon-4 { background-position: 0 -120px; }

.d-icon-5 { background-position: 0 -150px; }

.d-icon-6 { background-position: 0 -180px; }

.d-icon-7 { background-position: 0 -210px; }

.d-icon-8 { background-position: 0 -240px; }

.d-icon-9 { background-position: 0 -270px; }

.d-icon-10 { background-position: 0 -300px; }

.d-icon-11 { background-position: 0 -330px; }

.d-icon-12 { background-position: 0 -360px; }

.d-icon-13 { background-position: 0 -390px; }

.d-icon-14 { background-position: 0 -420px; }

.d-icon-15 { background-position: 0 -450px; }

.d-icon-16 { background-position: 0 -480px; }

.d-icon-17 { background-position: 0 -510px; }

.d-icon-18 { background-position: 0 -540px; }

.d-icon-19 { background-position: 0 -570px; }

无论多少个图片,使用Sass一句话搞定,不是方便,是相当方便。

这里使用了@for $i from a to b;还是一种是@for $i from a through
b;$i是一个变量,自己随便取,从a到b,to,through的区别是to
不包括b,through包括b,上面的例子,如果使用through,将多一个.d-cions-20{}

谈谈CSS预处理技术中for循环的应用-CSS Sprite,布布扣,bubuko.com

时间: 2024-07-30 10:15:31

谈谈CSS预处理技术中for循环的应用-CSS Sprite的相关文章

CSS在工程中改变之面向对象的 CSS

oocss的概念 众多开发者忽视了css的表现(认为它) oocss将页面可重用的元素抽象成一个类,用class加以描述,而与其对应的HTML即可看成是此类的一个实例. oocss的作用 1.加强代码复用以便方便维护. 2.减少cs体积 3.提升渲染效率 4.组件库思想,栅格布局可共用,减少选择器,方便扩展. 注意事项 1.不要直接定义子节点,应该把共性放在父类中 2.结构和皮肤相分离 3.容器与内容相分离 4.抽象出可重用的元素,建好组件库,在组件库内寻找可用的元素组装页面 5.往你想要扩展的

CSS 预处理器中的循环

我们先看一看循环能做什么,以及在主流的 CSS 预处理器(Sass, Less,Stylus )中如何使用.每一种语言都有特殊的语法,但是最终的效果是相同的.有多种方式制作 一只循环走动的猫 (animation by Rachel Nabors) PostCSS 也很流行,但是本身并没有语法.它被称为后处理器,我喜欢称它为 meta-preprocessor.PostCSS 允许书写并分享你自己的预处理器语法.如果你愿意,你可以在 PostCSS 中重写 Sass 或者 Less,但是已经有人

css预处理scss环境配置

css 预处理器 CSS 预处理器用一种专门的编程语言,进行 Web css编码,然后再编译成正常的 CSS 文件,以供项目使用:说简单点就是在某个环境下写css 可以写变量.表达式.嵌套等,在通过该环境将css预处理的语言编译成正常的css文件; sass与scss 学习网站:  http://sass.bootcss.com/ sass是采用Ruby语言编写的一款css预处理语言.Sass的缩进语法,对于写惯css前端的web开发者来说很不直观,也不能将css代码加入到Sass里面,因此sa

Python中的循环技术

简单谈谈 Python 中容器的遍历和一下小技巧. 1.遍历单个容器 下面代码遍历一个 List 结构,同样适用于 Tuple.Set 结构类型 >>> x = [1, 2, 3, 'p' , 'y'] >>> for v in x: ... print(x) ... 1 2 3 p y 遍历字典 Dict 结构也是一样的方法,注意区分 Key-Value >>> y = {'a':11, 'b':22} >>> y {'b': 22

#前端杂谈 【Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?via知乎 张秋怡】

先附上链接:Web 建站技术中,HTML.HTML5.XHTML.CSS.SQL.JavaScript.PHP.ASP.NET.Web Services 是什么? 这是分享自知乎用户张秋怡的一个回答,用通俗形象的语言解释了关于前端的一些基本概念,比较适合像我这种刚入门的小白阅读.

php中对MYSQL操作之预处理技术(2)数据库dql查询语句

<?php //预处理技术 //创建一个mysqli对象 $mysqli = new MySQLi("主机名","mysql用户名","密码","数据库名"); //判断是否链接成功 if($mysqli->connect_error){ die($mysqli->connect_error); } //创建预编译对象 $sql = "select id,name,age,qq from 表名 wh

CSS Sprites技术(将背景图整合到一张图中,再利用CSS背景图片定位到要显示的位置)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

php中对MYSQL操作之预处理技术(1)数据库dml操作语句

<?php //预处理技术 //创建一个mysqli对象 $mysqli = new MySQLi("主机名","mysql用户名","密码","数据库名"); //判断是否链接成功 if($mysqli->connect_error){ die($mysqli->connect_error); } //创建预编译对象 $sql = "insert into 表名 (name,qq,age) val

9.14-9.18随笔之一(CSS扩展技术:LESS SASS)

less css是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性;SASS是对CSS3(层叠样式表)的语法的一种扩充,它可以使用巢状.混入.选择子继承等功能,可以更有效有弹性的写出Stylesheet. less是一种语法,使用需要编译器将其编为CSS才能使用,通过less 我们可以在编写css时设置变量(@变量名).运用继承.嵌套等,更方便CSS的编写和维护,我最为喜欢的便是这两种技术中可嵌套的编写方法,对于初学者来说尤为实用,在less中