css(7)less和flex的基本知识

目录

less

简介

 变量

父元素

扩展

mixin 混合

类选择器

flex(弹性盒、压缩盒)

弹性容器

弹性元素

flex-direction

弹性元素的属性

flex-grow 

flex-shrink


less

简介

less是一门css的预处理,是一个css的增强版,通过less可以写更少的代码实现更强大的样式

在less中添加了许多的新特性,eg对变量的支持,对mixin的支持

less的语法大体上和css语法一致,但less中增添了许多对css的扩展

所以浏览器无法直接执行less代码,要执行必须将less转换为css,然后再由浏览器执行

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			html{
				--color:#ff0 ;
				--length:200px;
				
			}
				
			.box1{
				width: calc(200px/2);
				height: var(--length);
				background-color: var(--color);
				
			}
			.box2{
				width: 200px;
				height: 200px;
				color: var(--color);
				
			}
			.box3{
				width: var(--length);
				height: var(--length);
				border: 10px solid var(--color);
			}
		</style>
	</head>
	<body>
		<div class="box1">aaaa</div>
		<div class="box2">aaaa</div>
		<div class="box3">aaaa</div>
	</body>
</html>

效果:

 变量

在变量中可以存储一个任意的值,并且在我们可以在需要是,可以任意修改变量的值

语法:@变量名

示例:

syntax.less

@a:100px;
@b:red;
@c:box6;

.box5{
	width: @a;
	height: @a;
	color: @b;
	
}
.@{c}{
	width: 6.25rem;
	background-image: url(../../06_font&background/fa/webfonts/fa-brands-400.svg);
}
div{
	width: 100px;
	height: 100px;
	
}

效果:

syntax.css

/*
多行注释
内容会被解析到css文件中
*/
.box1 {
  background-color: #BBFFAA;
}
.box1 .box2 {
  background-color: #ff0;
}
.box1 .box2 .box4 {
  color: red;
}
.box1 .box2 .box3 {
  background-color: orange;
}
.box5 {
  width: 100px;
  height: 100px;
  color: red;
}
.box6 {
  width: 6.25rem;
  background-image: url(../../06_font&background/fa/webfonts/fa-brands-400.svg);
}
div {
  width: 100px;
  height: 100px;
}

父元素

&表示外层的父元素

示例:

style3.less

.box1{
	.box2{
		color: red;
		
	}
	>.box3{
		color: green;
			
		&:hover{
			color: blue;
		}
		
	}
	&:hover{
		color: orange;
	}
	
}

效果:

style3.css

.box1 .box2 {
  color: red;
}
.box1 > .box3 {
  color: green;
}
.box1 > .box3:hover {
  color: blue;
}
.box1:hover {
  color: orange;
}

扩展

:extend()  对当前选择器扩展指定选择器的样式(选择器分组)

示例:

.p1{
	width: 100px;
	height: 100px;
	
}

//:extend() 对当前选择器扩展指定选择器的样式(选择器分组)

.p2:extend(.p1){
	color: red;
}

效果:

css

.p1,
.p2 {
  width: 100px;
  height: 100px;
}
.p2 {
  color: red;
}

直接对指定样式进行引用,这里就相当于将p1的样式在此进行了复制

mixin 混合

示例:

p3{
	
	.p1();
}

效果:

.p3 {
  width: 100px;
  height: 100px;
}

类选择器

使用类选择器时可以在选择器后边添加一个括号,此时就需要用一个mixins

示例:

.p4(){
	width: 100px;
	height: 100px;
	background-color: #BBFFAA;

}
.p5{
	.p4();
}

效果:

.p5 {
  width: 100px;
  height: 100px;
  background-color: #BBFFAA;
}

注意:在less中所有的数值可以直接运算

示例:

@import"syntax2.less"

.box1{
	width: 100px;
	height: 100px/2;
	background-color: #BBFFAA;
}

效果:

css

@import "syntax2.less".box1 {
  width: 100px;
  height: 50px;
  background-color: #BBFFAA;
}

flex(弹性盒、压缩盒)

主要用来代替浮动来完成页面的布局,通过使元素具有弹性,让元素跟随页面的大小的改变而改变

弹性容器

通过dislay来设置弹性容器

可选值:

  • display:flex  块级弹性容器
  • display:inline-flex  行内的弹性容器

弹性元素

弹性容器的子元素是弹性元素(弹性项)

flex-direction

指定容器中弹性元素的排列方式

可选值:

row

默认值,弹性元素在容器中水平排列(左向右)

主轴,自左向右

row-reverse弹性元素在容器中反向排列(右向左)
column弹性元素纵向排列(自上向下)
column-reverse弹性元素纵向排列(自下向上)

主轴:弹性元素的排列方向

侧轴:与主轴垂直的方向

弹性元素的属性

flex-grow 

指定弹性元素的伸展的系数,当父元素有多余空间时,子元素如何伸展

父元素的剩余空间会按照比例进行分配

flex-shrink

指定弹性元素的收缩系数

当父元素中的空间不足以容纳所有子元素时,会对子元素进行收缩

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
				list-style: none;
				
			}
			ul{
				width: 500px;
				border: 10px red solid;
				display: flex;
				flex-direction: row;
				display: flex;
			}
			li{
				width: 200px;
				height: 100px;
				background-color: #BBFFAA;
				font-size: 50px;
				text-align: center;
				line-height: 100px;
			}
			li:nth-child(1){
				flex-grow: 1;
			}
			li:nth-child(2){
				background-color: pink;
				flex-grow: 2;
				
			}
			li:nth-child(3){
				background-color: orange;
				flex-grow: 3;
				
			}
		</style>
	</head>
	<body>
		<ul>
			<li>1</li>
			<li>2</li>
			<li>3</li>
			
		</ul>
	</body>
</html>

效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值