day13

弹性盒子

弹性盒子是css3新的布局模式

引入弹性盒布局模型的目的是提供一种更加有效的方式 来对一个容器的子元素进行排版、对齐和分配空间。

应用场景 : 移动端

display: flex/inline-­flex

让当前盒子成为弹性盒子,控制子元素(项目)的布局,让子元素(项目)沿着主轴的方向进行对齐 ,默认的主轴是x轴 ,子元素类似于行内块元素(没有间隙),子元素的float,clear,vertical­-align属性将失效。

flex­-direction

设置主轴的方向

  • row(x轴)

  • column(y轴)

  • row­-reverse 反转x轴

  • column- ­reverse 反转y轴

备注: 主轴不一定是x轴,还可以是y轴,有一边是主轴,另外一边就是交叉轴(侧轴)。

justify­-content

设置主轴的对齐方式

  • flex­-start : 主轴顶端对齐

  • flex-­end : 主轴的末端对齐

  • center 居中对齐

  • space-around : 平均分配

  • space-between :两端对齐

  • space-evenly:项目与容器,项目与项目之间距离都相等

align-­items

设置交叉轴(侧轴)的对齐方式

  • flex­-start : 侧轴顶端对齐

  • flex-­end : 侧轴的末端对齐

  • center 侧轴居中对齐

  • stretch : 如果子元素没有设置高(auto),默认子元素的高会拉伸,和父元素的高一样

  • baseline 基线对齐

flex­-wrap

控制子元素折行

  • nowrap 默认值(不折行)

  • wrap 折行

  • wrap­-reverse 反转折行

备注 : flex­-flow : flex-­direction flex­-wrap,的简写

align-­content (扩展)

折行, 行与行之间有间隙,去除间隙 ,控制侧轴对齐方式 (与flex-wrap:wrap)搭配使用

  • flex­-start:顶端对齐,没有行间距

  • flex-­end:底对齐,没有行间距

  • center 居中,没有行间距

  • space­-between:两端对齐,中间自动分配

  • space-­around:自动分配距离

align-­self

调整自身在侧轴的对齐方式

  • flex­-start

  • flex­-end

  • center

  • stretch

order

定义项目的排列顺序。数值越小,排列越靠前,默认值为 0

flow­-grow

定义项目的放大比例,默认为 0,即如果存在剩余空间,也不放大

flex-­shrink 属性

定义项目的缩小比例,默认为 1,即如果空间不足,该项目将缩小

calc

语法 : calc(表达式)

注意:使用的时候运算符前后需要加空格

例如:calc(100% - 300px)

less

less预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为css增加了一些编程的特性。

将css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。

使用css预处理器语言,可以让css更加简洁,适应性更强, 可读性更佳,更容易代码的维护等诸多好处。

less定义变量

@变量名 : 值;

@likeColor:#0f0;
@fangX:left;
​
.box{
width: 300px;
height: 300px;
background: @likeColor;
// float: @fangTwo;
margin-@{fangX}: 50px;
}

备注: 变量作为属性名的一部分,要加{};

less导入其他的css文件

语法 : @import "reset.css" ;

less混入写法

混入可以将一个定义好的 class A 引入到另一个 class B 中,从而实现 class B 继承 class A 中的所有属性。

定义好的classA可以放参数

写一个类名a, 类型b里 引入 类名a;

那么b里面就有a的代码啦 类名a可以加一个参数可以加多个参数,参数可以有默认值

// 不带参数

.a{
     width:100px; 
    height:50px;
} 
​
.b{
    .a;
} 

带一个参数的,没有给默认值

.border(@size){ 
    border-radius: @size; 
}
​
.b{
//使用的时候必须给参数  
..border(30px)
}

带一个参数的,并且还给了默认值

.border(@size:20px){ 
    border-radius: @size; 
}
.b{
.border//第一种写法不给参数,默认为20px
.border(50px)//第二种写法可以自己给一个参数,替换掉默认的20px
}

// 带多个参数,并且还给了默认值 多个参数用 @arguments

.shadow(@x:0,@y:0,@blur:1px,@color:#f00){ 
​
    box-shadow:@arguments; 
}  
​
.b{
    .shadow;//使用给的默认值
.shadow(5px,5px,5px,5px,#333)//也可以自己设置属性值
}

嵌套

&:表示承接上一级元素

p{
     // width: 100px;
     width: 200px-20;
     height: 100px;
     background-color: yellow;
     span{
         color: blue;
​
     }
     a{
         font-size: 30px;
         &:hover{
             color: green;
         }
     }
 }

less继承

好处 : 类似群组选择器 语法 : &:extend(.类名)

.box{
width: 300px;
height: 300px;
background: @likeColor;
margin-@{fangX}: 50px;
margin-bottom: 30px;
}

方法一

.box2{
&:extend(.box);
}
​

方法二 :

.box2:extend(.box){

}

less中注释问题

// 单行注释 编译后会忽略掉

/**/ 多行注释 编译后仍会保留

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值