HTML+CSS_第四部分(Sass与Less、PostCSS、CSS架构与文件组织、CSS新特征)

  • Post author:
  • Post category:其他




(一): Sass与Less



1、简介:

Sass、Less都属于css的预处理器,css预处理器定义了一种新的语言,
其基本思想就是,用一种专门的语言,为css增加了一些编程的特性,
如变量、语句、函数、继承等概念。
将css作为目标生成文件,然后开发者就只要使用这种语言进行css编码工作.

注意:预处理文件浏览器不能识别,需要编程css文件浏览器才能识别



2、Sass和Less的创建和转换为css

Sass:
官方网站:http://lesscss.org/
VS Code插件: Easy LESS


Less:
官网地址:http://sass-lang.com/
VS Code插件: Easy Less

(官网上有相关的使用教程和相关API的使用)

创建 :
	Less-------->创建为.less文件
	Sass-------->创建为.sass(老版)或者创建为.scss(新版)
	.sass文件和.scss文件的区别:
	(推荐使用.scss文件)

转换:
	当你在VS Code创建一个less文件或者创建一个scss文件的时候,保存的时候自动生成一个对应的css文件
	. Less保存  ----->  只对应生成一个css文件
	.cscss保存  ----->  对应生成一个.css和一个.min.css文件(压缩格式的css文件)



3.Less

(1)注释:		添加单行注释在less文件中,不会编译到css文件中
	添加多行注释在less文件中,会编译到css文件中
	

(2)变量:
		声明: @变量名:值	
		如:@number:123px
		使用:如:width:@变量名

(3)插值:
	例1:
	声明变量: @key:margin    使用:  @{key}:auto;
	
	例2:
	声明变量: @i:1			  使用:.box@{i}:{css样式} --->写 .box2类选择器
	(利用@{变量})

(4)作用域:
	就近原则(上下找最近的)
	
(5)选择器嵌套:

在这里插入图片描述

(6)伪类嵌套 (加&符号)

在这里插入图片描述

(7)运算:
	 两个单位不同的时候以第一个数的单位进行转换

在这里插入图片描述

(8)函数:          

在这里插入图片描述

 	(还有许多的函数,去官网的api中去查看)
 	
(9)混入
	Less的混入就是把不同的css混合在一起,一个css混入到另一个css中

在这里插入图片描述

	(在.box6中调用了.show和.hide选择器的css样式)
	(可以看出.hide选着器后面加入括号之后,在生成的css样式中不会出现)
	(可以看出可以往括号中加入参数)
	
(10) 命名空间(less有,cass中是没有)
		在命名空间中声明自己的很多样式,
		可以混入该命名空间中的css样式选着器

在这里插入图片描述

		(声明一个命名空间以#开头,不要忘记有空号)
(引用命名空间里面的css样式选择器的时候 #命名空间.css样式选择器)

(11)继承

在这里插入图片描述

(继承一个css样式选择器:    &:extend(.父类css样式选择器)  )

(12)合并 
  	合并就是把多个值合在一起
(利用 + 号    以逗号的形式合并在一个属性中)
(利用 +_ 符号 以空格的形式合并在一个属性中)

在这里插入图片描述

(13)媒体查询

在这里插入图片描述

(14)条件
	When(判断条件)  进行判断

在这里插入图片描述

(15)循环

在这里插入图片描述

(16)导入
	一个less文件中导入另一个less文件
	@import  ‘less文件路径’



4.Sass

(1) 注释:		添加单行注释在less文件中,不会编译到css文件中
		添加多行注释在less文件中,会编译到css文件中
		
(2) 变量:
		声明: $变量名:值     使用:如:wither:$变量名
		
(3) 插值:
		例1:
		声明变量: $key:margin    使用:  #{key}:auto;
		例2:
		声明变量: $i:1			  使用:.box#{i}:{css样式} --->写 .box2类选择器
		(利用#{变量})
		
(4) 作用域:
		就近原则(只往上找最近的)
		
(5)选择器嵌套:

在这里插入图片描述

(6)伪类嵌套 (加&符号)

在这里插入图片描述

(7)属性的嵌套(less中没有,sass中才有的)

在这里插入图片描述

(8)运算
	当两个单位不同的时候进行运算,会报错

在这里插入图片描述

			(加小括号就可以一起运算)
			
(9)函数:

在这里插入图片描述

	sass还可以自定义函数:
	   利用@function 函数名($形参){函数体   @return $返回值;}

在这里插入图片描述

(10)混入
可以看出sass的混入是需要添加关键字@mixin  
调用的时候需要添加关键字 @include

在这里插入图片描述

	(可以看出@mixin声明的不会相应的生成css样式选着器)





(11) 继承

在这里插入图片描述

(17)合并 

在这里插入图片描述

(18)媒体查询

在这里插入图片描述

(19)条件

在这里插入图片描述

(20)循环

在这里插入图片描述

(21)导入
		一个.scss文件中导入另一个.scss文件
		@import  ‘.scss文件路径’



(二):PostCSS



1.简介

PostCSS本身是一个功能比较简单的工具.他提供了一种方式用js代码来处理css代码。利用PostCSS可以实现一些工程化操作,
如:自动添加浏览器前缀,代码合并,代码压缩等等。

	官方网站:http://postcss.org/
	工程化,处理化,css的后处理
(在官网进行下载,postcss提供了很多功能的插件,我们主要来掌握某些插件的使用方法)

下载安装:
		1.先安装node环境
		2.npm install postcss  -cli  -g



2.使用:

在dos命令下:
	Postcss  要处理的css文件路径  -o 处理后的css保存路径
	(每改一次css要执行一次该命令后处理的css才会修改)
	Postcss  要处理的css文件路径  -o 处理后的css保存路径 -w
	(只要不关闭该命令,该后处理的css自动修改)
	(按两次ctrl+c结束)

真正要处理的时候要进行写Postcss.config.js配置文件
(主要的是要求配置我们要使用的插件)



3.Postcss常见的插件

(在dos命令下载相应插件(或者在官网下载)和在官网查看插件的使用方法)
(写好Postcss.config.js配置文件中引入相关插件的使用规则)
(怎么写Postcss.config.js以后网上自己学)

插件一: autoprefixer插件  ------->  自动添加浏览器前缀
插件二: postcss-import插件 ------>  对多个css文件进行合并
插件三: cssnano插件  ------>   对css文件进行压缩处理
插件四: postcss-cssnext插件---> 处理比较高级的css语法
(进行降级,使所有的浏览器都可以使用该css语法)
插件五: stylelint插件  --->  语法检查规范
插件六:  postcss-sprites插件  ------->  自动合并背景图为雪碧			图,并且自动换为雪碧图的定位



(三): CSS架构与文件组织

在一个大型的项目中,由于页面过多,导致css代码难以维护和开发.
所以CSS架构可以帮助我们解决文件管理和文件划分等问题

(实现要对css进行模块化处理,一个模块负责一类操作行为.
  可利用Sass或者less来实现)

都是可以划分为什么模块???

在这里插入图片描述

把不同的模块利用文件夹进行划分,同一个模块的css文件放到同一个文件夹中
(在一个less中导入全部的css文件,生成一个总的css文件)



(四):css新特征



1.自定义属性

定义   --变量名:  值;    
引用    var(--变量名)或者var(--变量名,默认值) 当该变量错误的时候,为默认值  
作用域   先优先级在就近原则

在这里插入图片描述



2.Shapes

CSS shapes 能实现不规则的文字环绕效果,需要和浮动配合使用.
	shape-outside:none;  加上不规则文字环绕
	shape-outside:区域; 在该区域进行环绕
	Shape-outside:选项; 绘制不规则的图形
	Shape-margin:px;    不规则图形的外边距



3.Scrollbar

CSS scrollbar用于实现自定义滚动条样式
		盒子::-webkit-scrollbar{设置滚动条样式}    给该盒子设置一个滚动条(html为整个页面)
		盒子::-webkit-scrollbar-thumb{拖拽的样式}
		盒子::-webkit-scrollbar-track{滚动条容器的样式}



4.scroll snap

CSS  scroll snap(css滚动捕捉)允许你在用户完成滚动后锁定特定的元素或位置

在外面容器上加上
	Scroll-snap-type: x mandatory;  x代表x轴
	
在子项上添加
	Scroll-snap-align: end;



版权声明:本文为weixin_44051048原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。