弹性盒布局CSS3

传统布局的局限性

1.清除浮动的额影响
2.很难实现居中
3.结构不灵活,不能随时添加盒子

弹性盒布局

非常灵活 提供一套浏览器内置布局
特点:一位布局 固定的CSS属性 决定了这个布局一般用在移动端

加在弹性父盒子身上的属性

1.声明弹性盒子

-webkit-display:flex;
display:flex;

2.设置主轴方向

flex-direction:row 水平方向(默认)
row-reverse(水平反向)
column(垂直)
column-reserve(垂直反向)

3.设置主轴方向的排列顺序

justify-content:flex-start(左对齐)
flex-end(右对齐)
center(居中)
space-sround(两端间距等于中间的一半)
space-between(两端对齐中间间距等分)
space-evenly(间距等分)

4.设置交叉轴方向的排列方式(单行使用)

algin-items:flex-start(上对齐)/
flex-end(下对齐)
center(居中)
baseline(基线对齐)
stretch(延伸,占满)

5.换行属性
前提:不想自动收缩的时候,子盒子宽度>父盒子宽度

flex-wrap:wrap/nowrap/wrap-reverse(上下换行)


**6.复合写法**
flex-flow:flex-direction  flex-wrap;默认值 row nowrap


## 加在子项身上的属性
**flex属性**
```css
flex:flex-basis flex-shrink flex-grow;

flex-basis: 子项的宽度(auto)  基础宽度属性 

flex-shrink:子项占据弹性父盒子的溢出空间的比例 (子项宽度和>父盒子宽度的时候)  默认值为:1

flex-grow: 子项占据弹性父盒子的剩余空间的比例 (子项宽度和<父盒子宽度的时候)默认值:0


flex:auto 1 0;默认值

99%情况 剩余空间  flex:auto  1 n; ===> flex:n;

order排序属性

order:n;

子项自己在交叉轴的排列方式

align-self:flex-start上对齐/flex-end下对齐 /center居中/baseline基线对齐/stretch延伸,占满;

多行使用

所有子项在交叉轴的对齐方式

align-content:flex-start 左对齐
flex-end右对齐 
center居中
space-around两端间距等于中间的一半
space-between两端对齐中间间距等分
space-evenly间距等分;

LESS语言

介绍一下你自己: 我是css的升级 我不是为了取代css 我是为了扩展css语言 我是动态语言 具有编程语言特性的语言 我比css好在 我可以计算,可以预定义一些你今后要用的值 ,嵌套,传参,----》

好处:编码速度会提高,维护相对容易 主旨: less is more

新建 .less —> 浏览器不认识.less —>编译(.less—>.css)—>浏览器认识啦!

编译方式:

Koala 考拉

缺点:弹框 提示错误

EasyLess

缺点:设置一下.css文件路径 稍微有点卡 重新导入

1. 变量

方便的去保存和获取数据 —>其实就是一个名字保存一个值 这个名字就叫变量

@变量名:变量值;
@w:1000px;
@maincolor:skyblue;

使用:
.box {
    width:@w;
    height:200*2px;
    background-color:@maincolor;
}

2.类混入

级别1:
.a {
    width:200px;
    height:200px;
    bgc:red;
    .br;
}
.b {
    .a;
    bgc:blue;
    opacity:0.8;
    .br;
}

定义一个圆角边框类

.br {
    border-radius:50%;
}
级别2:
.br(@a) {
    border-radius:@a;
}


.b {
    .a;
    bgc:blue;
    opacity:0.8;
    .br(10px);
}
级别3:
.br(@a:50%) { //@a:50% 默认值 调用.br()不传递参数相当于使用默认值
    border-radius:@a;
}


.b {
    .a;
    bgc:blue;
    opacity:0.8;
    .br();//采用的默认值 50%
}
.c {
    .br(3px);//3px 
}

例子:

定义盒子阴影类 
.bs(@h,@v,@blur,@size,@color) {
   // box-shadow:@h @v @blur @size @color;
      box-shadow:@arguments;//实际参数列表 代表上面的5个实参
}

.box {
    .bs(0px ,0px ,10px,0px,red);
}


.bs(@str,@color) {
 
      box-shadow:@arguments;
}
// @str: 0px 0px 10px 0px
    
.bs(0px 0px 10px 0px,red)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS3弹性布局(Flexbox)是一种用于创建灵活的、响应式的网页布局的技术。它通过定义容器和内部元素之间的关系来实现布局。以下是CSS3弹性布局的一些基本概念和属性: 1. 弹性容器(Flex Container):使用`display: flex;`或`display: inline-flex;`来定义容器为弹性容器。弹性容器的子元素将根据容器的规则进行布局。 2. 弹性项目(Flex Item):弹性容器中的子元素被称为弹性项目。可以使用`flex`属性来控制弹性项目在容器中的分布。例如,`flex: 1;`将使项目占据可用空间的比例为1。 3. 主轴(Main Axis)和交叉轴(Cross Axis):弹性容器具有主轴和交叉轴,它们决定了项目在容器内的布局方向。默认情况下,主轴是水平方向,交叉轴是垂直方向。 4. 弹性子属性: - `flex-direction`:指定主轴的方向(row、row-reverse、column、column-reverse)。 - `justify-content`:控制弹性项目在主轴上的对齐方式(flex-start、flex-end、center、space-between、space-around)。 - `align-items`:控制弹性项目在交叉轴上的对齐方式(flex-start、flex-end、center、baseline、stretch)。 - `align-self`:控制单个弹性项目在交叉轴上的对齐方式。可以覆盖`align-items`的设置。 - `flex-wrap`:指定是否换行(nowrap、wrap、wrap-reverse)。 - `flex-flow`:`flex-direction`和`flex-wrap`的简写形式。 - `align-content`:控制多行弹性项目在交叉轴上的对齐方式(flex-start、flex-end、center、space-between、space-around、stretch)。 CSS3弹性布局非常灵活,并且可以适应不同屏幕大小和设备。它被广泛应用于响应式网站设计和移动应用程序的开发中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值