css预处理语言--让你的css编写更加简单方便
CSS预处理语言之一-------LESS
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。
Less 可以运行在 Node 或浏览器端。
1、声明变量:
@变量名:变量值
使用变量:@变量名
>>>变量使用的原则
多次频繁出现的值,后期需要统一修改的值,牵扯到数值运算的值。
>>>less中的变量类型,
① 数值类:不带单位的123 带单位的122px;
②字符串类型,带引号的"hahaha" 不带引号的 red #ff0000;
③颜色类 red #ff0000;RGB(255,255,0)
④值列表类型,多个值用逗号或者空格分隔,10px solid red
在css中出现的属性值,都可以出现在less中。
@color:#FF0000;
@lenght:100px;
#div1{
width: @lenght;
height: @lenght*2;
background-color: @color;
}
2、混合(Mixins)
①无参混合
声明:.class{}
调用:在选择器中使用.class;直接调用
②有参无默认值混合:
声明: .class(@param){}
调用:.class(paramvalue)
③有参有默认值混合:
声明 .class(@param:10px){}
调用 .class(paramvalue)或者.class();
>>>如果声明是,没有给参数默认值,则调用时必须赋值,否则报错;
>>>无参混和,实际上就是一个普通的class选择器,会被编译到css文件中;
而有参混和在编译时,不会出现css文件中
//无参混合
.borderRadius{
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
//有参无默认值混合
.borderRadius1(@radius){
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
//有参有默认值混合
.borderRadius2(@radius:10px){
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
3、less中的匹配模式
①声明:
@pipei(条件一,参数){} @pipei(条件二,参数){} @pipei(@_,参数){}
②调用:
@pipei(条件的值:参数的值){}
③匹配规则:
根据调用时输入的条件值,并寻找与之匹配的混合执行
@_表示不管匹配成功与否,都会执行的选项。
/*匹配模式*/
.pipei(lefts,@width:10px){
margin-left: @width;
}
.pipei(rights,@width:10px){
margin-right: @width;
}
.pipei(tops,@width:10px){
margin-top: @width;
}
.pipei(bottoms,@width:10px){
margin-bottom: @width;
}
.pipei(@_,@width:10px){
padding: 10px;
}
4、@arguments特殊变量
在混合中,@arguments表示传入的所有参数。@arguments中的多个参数之间,用空格分隔。
.border(@width,@style,@color){
border:@arguments;//----->border:@width @style @color;
}
5、Less中的嵌套
less中允许css选择器按照html代码进行嵌套,这也是LESS中运用最广,最便捷的功能
less中的嵌套默认后代选择器,如果需要子代选择器,需要在前面加>
&符号表示这个&所在的上一层选择器,比如上述&,表示section里面的ul
section{
width: :800px;
height: 200px;
background-color: #ccc;
p{
color:red;
font-weight: bold;
}
ul{
padding: 0px;
list-style: none;
>li{
float: left;
width: 100px;
height: 50px;
background-color: blue;
&:hover{
background-color: green;
}
}
}
CSS预处理语言之二-----SCSS
SASS文件就是普通的文本文件,里面可以直接使用CSS语法。文件后缀名是.scss,意思为Sassy CSS。
下面的命令,可以在屏幕上显示.scss文件转化的css代码
1 scss中的变量
①声明变量:$变量名:变量值
SCSS中,允许将变量嵌套在字符中,但是变量必须使用井{}包裹
$width:100px;
$position:left;
#div1{
width:$width ;
height: $width;
background-color: red;
border-#{$position}:10px solid yellow;
}
2、SCSS中的运算
会将单位进行运算,使用时许注意最终的单位是否正确。
eg:10px*10px =100 px*px 报错
3、SCSS中的嵌套:
选择器嵌套:属性嵌套:伪类嵌套
① 选择器嵌套 ul{ li{ } }
嵌套默认为后代选择器:如果需要自带选择器,可以再选择器前加>
可以再选择器的{}中,使用&表示上一层的选择器。
② 伪类嵌套li{&:hover{} }
在选择器的{}中,使用&配合伪类事件,可以表示当前选择器的伪类
③ 属性嵌套: font:{
size:16px;
weight:blod;
family:"微软雅黑";
style:"italic";
}
对于属性名有-分隔为多段的属性,可以使用属性嵌套。属性名的前半部分,必须紧跟一个:才能使用{}包裹属性的后半部分;
section{
background-color: #ccc;
p{
color: red;
}
ul{
padding: 0px;
li{
list-style: none;
&:hover{
color: red;
}
font:{
size:16px;
weight:blod;
family:"微软雅黑";
style:"italic";
}
}
}
}
4、混合宏、继承、占位符
①混合宏:使用@mixin声明混合宏,在其他选择器中使用@include调用混合宏
@mixin hunhe(){} .class{@include hunhe;}
@mixin hunhe($param){} .class{@include hunhe(value);}
@mixin hunhe($param:value){} .class{@include hunhe();}
>>>声明时,可以有参数,也可以没有参数,参数可以有默认值,也可以没有默认值。但是调用时必须符合声明时的要求,与less中的混合相同
>>>优点:①可以传参 ②不会产生同名的class
>>>缺点调用时,会把混合宏中的所有代码copy到选择器中,产生大量重复代码。
②继承 声明一个普通的class,在其他选择器中使用@extend继承这个class
.class1{} .class2{ @extend .class1; }
>>>优点:将不同的代码。提取到并集选择器,减少冗余代码;
>>>确定:①不能传参 ②生成一个多余的class
③占位符 使用%声明占位符,在其他选择器中使用@extend继承展位符:
%class1{}
.class4{@extend %class1;}
>>>优点:将不同的代码。提取到并集选择器,减少冗余代码,不会生成一个多余的class
>>>缺点:不能传参
//继承
.class1{
color: red;
}
.class{
@extend .class1;
background-color: yellow;
}
//占位符
%class1{
color: red;
}
.class4{
@extend %class1;
background-color: yellow;
}
.class5{
@extend %class1;
background-color: green;
}
5、SCSS里的结构
//for循环
@for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
//while循环
$i:0;
@while $i<10{
.while-#{$i}{
border: #{$i}px solid red;
}
$i:$i+1;
}
//有问题
//each循环遍历
@each $item in c1,c2,c3,c4{
$i:$i+1;
.#{$item}{
border: #{$item}px solid red;
}
}
@function func($num){
@return $num *2;
}
.funcTest{
width: func(10px);
}
css预处理语言--让你的css编写更加简单方便的更多相关文章
- css预处理语言的模块化实践
编写css是前端工作中,一项普通而又频繁的劳动,由于css并不是一门语言,所以在程序设计上显得有些简陋.对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目 ...
- CSS预处理语言-less 的使用
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Node 或浏览器端. Less的编译处理 作为一 ...
- Less:Less(CSS预处理语言)
ylbtech-Less:Less(CSS预处理语言) Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题 ...
- CSS预处理语言
CSS预处理语言 Less,Sass,Stylus 安装 Less yarn add less 运行命令 ./node_modules/.bin/lessc 嵌套规则 Less.Sass嵌套规则一样 ...
- CSS 预处理语言之 less 篇
less 前言 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 安装 客户端使用 // 引入 ...
- CSS 预处理语言之 Scss 篇
简介 1. Sass 和 Scss Sass 和 Scss 其实是同一种东西,我们平时都称之为 Sass:Scss 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强 ...
- LESS,强大的CSS预处理语言
虽然写的css不多,但是我已经切身感觉到了书写css的恶心...抛开最令人烦的浏览器兼容问题不说,这个语言本身就有不少问题. 最简单的,比如多个地方是同一个颜色的,如果可以写在一个样式里还没什么,但是 ...
- CSS预处理语言——less与sass的使用
我们一般所使用的Less跟Sass一般是将其编译成我们所熟悉的CSS再导入使用,当然不经编译,直接在浏览器使用 我是习惯用Koala来进行编译,简单智能方便,Hbuilder也自带编译功能,不过要手动 ...
- 10 个 GitHub 上超火的 CSS 奇技淫巧项目,找到写 CSS 的灵感!
大家好,我是你们的 超级猫,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 如果 CSS 是女孩子,肯定如上图那样吧
随机推荐
- VMware Workstation 12 Pro 之安装林耐斯Debian X64系统
VMware Workstation 12 Pro 之安装林耐斯Debian X64系统... --------------------- 看到它的LOGO就很喜欢: ---------------- ...
- 线性代数-矩阵-转置 C和C++的实现
原理解析: 本节介绍矩阵的转置.矩阵的转置即将矩阵的行和列元素调换,即原来第二行第一列(用C21表示,后同)与第一行第二列(C12)元素调换位置,原来c31与C13调换.即cij与cji调换 . (此 ...
- B/S 架构中,网络模型的分解与协议解析
前言 如果是C/S专业毕业的或者是学过计算机网络课程的童鞋们,相信大家都知道网络模型的划分,本文首先来聊一聊目前对于B/S结构中,网络模型分解的两种方式. 没错,相信大家看到这个图片的时候就已经明白了 ...
- FileProvider解决FileUriExposedException
FileUriExposedException 在给app做版本升级的时候,先从服务器下载新版本的apk文件到sdcard路径,然后调用安装apk的代码,一般写法如下: private void op ...
- Spark Submit 脚本
当我们需要命令行传递参数时候,将--class 写在前面,然后是jar 最后是参数 spark-submit --master yarn --num-executors 3 --executor-me ...
- 近期学习的原生JS知识以及jQuery框架
[正则表达式]1.正则表达式包括两部分: ① 定义正则表达式的规则 ② 定义正则表达式的模式(i/g/m)2.声明正则表达式: ① 字面声明 : var reg = /表达式规则/表达式模式 ② 使用 ...
- zookeeper简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt193 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系 ...
- 第3阶段——内核启动分析之make menuconfig内核配置(2)
目标: 分析make menuconfig内核配置过程 在上1小结中(内核编译试验)讲到了3种不同的配置: (1)通过make menuconfig 直接从头到尾配置.config文件 (2) 通过m ...
- 汇编指令-str存储指令(4)
str -(Store Register)存储指令 格式:str{条件} 源寄存器,<存储器地址>将源寄存器中数据存到存储器地址中. 实例1: str r1,[r2] ...
- Web云笔记--CSS
CSS CSS CSS Web自学第二阶段之CSS 参考资料:<Head First HTML&CSS>(中文第二版)(美国)弗里昂ISBN:9787508356464 中国电力出 ...