CSS的扩展技术 (在原来的CSS语言的基础上扩展了js,可以在里面写js )

一、less

定义: @color:red; //定义颜色 @body-color:blue; @div-color:yellow;

引用:

body{ height:500px; border:1px solid @body-color; //调用了上面的颜色 }

嵌套:

div{ height:500px; border:1px solid @div-color;//这里就直接调用了上面的颜色 p{ color:@p-color; //div里面的p元素的样式 } }

传参:

border(@c){ 1px solid @c }

对border的调用:.border(red);

二、sass

sass有两种后缀名文件:

一种后缀名为sass,不使用大括号和分号;
另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号。

建议使用:scss.

$fontSize: 12px;

body{

font-size:$fontSize;

}

混合(mixin)

@mixin ($w,$h) {
      width:$w;
       height:$h;
    }

@include opacity(80px,60px);

在sass里面,需要注意的是:

less里面:

.fontSize: 12px;

body{

fontSize: 14px;

font-size:.fontSize; }

p{

font-size:.fontSize; }

会显示:

body{

fontSize: 14px;

}

p{

fontSize: 12px;

}

sass里面:

$fontSize: 12px;

body{

$fontSize: 14px;

font-size:$fontSize; }

p{

font-size:$fontSize; }

会显示:

body{

fontSize: 14px;

}

p{

fontSize: 14px;

}

多参数:

@mixin horizontal-line($border:1px dashed #ccc, $padding:10px)

{

border-bottom:$border;

padding-top:$padding;

padding-bottom:$padding; }

.imgtext-h li{

@include horizontal-line(1px solid #ccc);

}

只传一个值,那么调用@include horizontal-line时,会设置 padding-top和 padding-bottom的默认值,

如果@include horizontal-line没有写默认值,那么sass会报错,需要修改@include horizontal-line需要传递的值,或者在.imgtext-h li里面,添加一个值。

所以说,在sass局部定义是变量会影响全局的变量,p元素会根据div内部的定义字体大小的,来设置p元素的字体大小。

在选择器中声明的变量会覆盖外面全局声明的变量。(这也就人们常说的sass没有局部变量)

不仅这样,还能做if判断、for循环和三目运算。

@for $i from 1 through 3

{

.item-#{$i}{ width: 2em * $i; }

}

会显示:

.item-1 { width: 2em; }

.item-2 { width: 4em; }

.item-3 { width: 6em; }

from 1 through 3是表示从1开始到3结束,只需要修改值,就能实现你需要的几个.item-x,和它的宽度。

三、less和sass的区别

1.实现方式:Less是基于JavaScript,是在客户端进行处理的;Sass是基于Ruby,是在服务器端进行处理的。

2.定义变量:Less定义变量时使用前缀:@;Sass定义变量时使用前缀:$。

3.混合(Mixins):Less中使用混合时,只需在classB中根据classA的命名来使用;Sass中首先在定义混合时需要使用@mixin命令,其次在调用时需要使用@include命令来引入之前定义的混合。

4.解析方式:Less可以向上/向下解析;Sass只能向上解析。

5.变量的作用域:Less中的变量有全局和局部之分;Sass可以变量可以理解为都是全局的,但可以通过在变量后面跟!default,在引入Sass文件之前改变变量的属性值来解决这一问题。

6.比起Less,Sass中增加了条件语句(if、if...else)和循环语句(for循环、while循环和each循环)还有自定义函数:

css的扩展技术的更多相关文章

  1. CSS3扩展技术

    我们使用扩展技术编写代码时,需要先用编译器将我们的文件进行编译,编译后的文件才能够使用. less技术相关语法 less相对来说比较简单,语法也较少:     变量的定义:     @w:20px; ...

  2. CSS Sprites(CSS图像拼合技术)教程、工具集合

    本集合是有一位国外设计师收集整合,并由 oncoding翻译成中文的,感谢他们的辛苦贡献.CSS Sprites技术在国外并不是什么新技术,只不过近两年(尤其08年开始)中国开始流行这个词,大家也开始 ...

  3. 几种垂直居中的方式及CSS图片替换技术

    由于块级元素的高度是可以设置的,所以对于块级元素的垂直居中比较简单. 方法一: 在不定高的情况下,把元素的上下内边距设为同一个值即可实现,即padding :10px   0; 以上方法针对块级元素和 ...

  4. FizzlerEx —— 另一个HtmlAgilityPack的CSS选择器扩展,

    之前我介绍过HtmlAgilityPack的CSS选择器扩展——ScrapySharp,它可以非常方便的实现通过CSS选择器表达式来查询HtmlNode.今天在使用的过程中,发现它不支持nth-chi ...

  5. 网站性能优化之CSS无图片技术:三角形

    1.使用CSS无图片技术,可以总结得到以下三个优点: 减少请求资源的大小: 减少http的请求个数: 提高可维护性. 一.CSS无图片技术,微博中有哪些实际应用呢? 通过上面的展示,我们可以看到,无图 ...

  6. css雪碧技术的用法。

    ---恢复内容开始--- 在目前前端开发阶段,页面会出现大量的小图片,服务器加载的时候比较吃力,怎么用 一种办法把图片都合并到一张图片上呢?这就用到了css雪碧技术. 雪碧技术是雪碧团队开发,也有人叫 ...

  7. CSS 图像拼合技术

    CSS 图像拼合技术 一.图像拼合 图像拼合就是单个图像的集合. 有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求. 使用图像拼合会降低服务器的请求数量,并节省带宽. 二.图像拼合 - ...

  8. css图像拼合技术(精灵图)

    CSS图像拼合技术 1.图像拼合 图像拼合技术就是单个图像的集合. 有很多图片的网页可能会需要很多时间来加载和生成多个服务器的请求. 使用图像拼合会降低服务器的请求数量,并节省带宽. 图像拼合实例 有 ...

  9. CSS:CSS 图像拼合技术

    ylbtech-CSS:CSS 图像拼合技术 1.返回顶部 1. CSS 图像拼合技术 图像拼合 图像拼合就是单个图像的集合. 有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求. 使用图 ...

随机推荐

  1. Django模型操作常用方法

    1.Save() 基本方法:object.save() save顾名思义是保存的意思,在django中既可以进行新增也可以进行修改操作.具体判定的算法如下: 1.如果对象的主键属性为一个求值为True ...

  2. HTML5_图片合成_刮刮卡

    刮刮卡(图片合成) 定义: globalCompositeOperation 属性,设置或返回如何将源图像 将 myCanvas 的背景图设置为一张图片,(刮开后显示) // 目标图像(已有的,外面一 ...

  3. ECMA Script 6_Generator

    Genertor  是一个普通函数,但是有两个特征: function 关键字 与 函数名之间有一个星号: 函数体内部使用 yield 表达式,定义不同的内部状态(yield 在英语里的意思就是“产出 ...

  4. [LeetCode] Subdomain Visit Count 子域名访问量统计

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  5. 变量类型-Number

    教程:一:数字类型 (1)int 没有限制大小,有以下的四种表现形式:        1:2进制:以'0b'开头---bin        2:8进制:以'0o'开头---oct        3:1 ...

  6. 正则RegExp序2

    1.var reg=/./     var reg=/\./ 前者代表任意一个字符而后面代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? var reg=/\d?/ /n?/ 代表 ...

  7. The POM for cn.e3mall:e3mall-common:jar:0.0.1-SNAPSHOT is missing, no dependency information available

    [WARNING] The POM for cn.e3mall:e3mall-common:jar:0.0.1-SNAPSHOT is missing, no dependency informati ...

  8. ASP.NET 创建WebService——简单例子

    Web service是一个基于可编程的web的应用程序,用于开发分布式的互操作的应用程序,也是一种web服务 WebService的特性有以下几点: 1.使用XML(标准通用标记语言)来作为数据交互 ...

  9. Math工具类

    public static void main(String[] args) { // 工具类,所有方法都以静态方法提供,没有实例存在的意义 // 不提供任何实例的方法,代表当前类属于无状态的. // ...

  10. 如何使用mybatis插入数据之前就具生成id值

    SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,该功能可以很随意的设置生成主键的方式. 不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦. k ...