Web前端开发 移动端布局(flex布局快速入门)

零、rem布局案例代码

1.效果图

在这里插入图片描述

2.源代码

https://download.csdn.net/download/weixin_46127956/86928074

一、flex布局原理

  • 给父盒子(flex_container)加flex属性,控制子盒子(flex_item)的排列方式
  • flex盒子内的clear、float、vertical-align无效

二、父元素属性

1.display:flex

将容器指定为flex布局

2.flex-driection(设置主轴排列方向)

属性说明
row(默认值)主轴方向为→,即主轴为水平方向,起点在左端
row-reverse主轴方向为←,即主轴为水平方向,起点在右端
column主轴方向为↓,即主轴为垂直方向,起点在上沿
column-reverse主轴方向为↑,即主轴为垂直方向,起点在下沿

效果:在这里插入图片描述

HTML代码:

row效果:
<div class="father row">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
row-reverse效果:
<div class="father row-reverse">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
column效果:
<div class="father column">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
column-reverse效果:
<div class="father column-reverse">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>

CSS代码:

.father {
    width: 500px;
    background-color: pink;
    display: flex;
}

.row {
    flex-direction: row;
}

.row-reverse {
    flex-direction: row-reverse;
}

.column {
    flex-direction: column;
}

.column-reverse {
    flex-direction: column-reverse;
}

.father span {
    width: 50px;
    border: 1px solid #000;
}

3.justify-content(设置主轴对齐方式)

属性说明
flex-start(默认值)头部对齐
flex-end尾部对齐
center居中对齐
space-around居中分布
space-between左右贴片,再居中分布

效果:
在这里插入图片描述

HTML代码:

flex-start效果:
<div class="father flex-start">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
flex-end效果:
<div class="father flex-end">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
center效果:
<div class="father center">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
space-around效果:
<div class="father space-around">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
space-between效果:
<div class="father space-between">
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>

CSS代码:

.father {
    width: 500px;
    background-color: pink;
    display: flex;
    flex-direction: row;
}

.father span {
    width: 50px;
    border: 1px solid #000;
}

.flex-start {
    justify-content: flex-start;
}

.flex-end {
    justify-content: flex-end;
}

.center {
    justify-content: center;
}

.space-around {
    justify-content: space-around;
}

.space-between {
    justify-content: space-between;
}

4.flex-wrap(设置换行)

属性说明
nowrap(默认值)不换行(若父装不下,会缩小”子盒子“的大小)
wrap换行

效果:
在这里插入图片描述
HTML代码:

nowrap效果:
    <div class="father nowrap">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    wrap效果:
    <div class="father wrap">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>

CSS代码:

.father {
    width: 500px;
    background-color: pink;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
}

.father span {
    width: 200px;
    border: 1px solid #000;
}

.nowrap {
    flex-wrap: nowrap;
}

.wrap {
    flex-wrap: wrap;
}

5.align-items(设置侧轴对齐方向)

属性说明
stretch(默认值)平均拉伸父元素高度
flex-start头部对齐
flex-end尾部对齐
center居中对齐

效果:
在这里插入图片描述

HTML代码:

stretch效果:
    <div class="father stretch">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    flex-start效果:
    <div class="father flex-start">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    flex-end效果:
    <div class="father flex-end">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    center效果:
    <div class="father center">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>

CSS代码:

.father {
    width: 500px;
    height: 80px;
    background-color: pink;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
}

.father span {
    width: 200px;
    border: 1px solid #000;
}

.stretch {
    align-items: stretch;
}

.flex-start {
    align-items: flex-start;
}

.flex-end {
    align-items: flex-end;
}

.center {
    align-items: center;
}

6.align-items(设置侧轴对齐方向–多行的情况下)

属性说明
stretch(默认值)平均拉伸父元素高度
flex-start头部对齐
flex-end尾部对齐
center居中对齐
space-around居中分布
space-between左右贴片,再居中分布

效果:
在这里插入图片描述

HTML代码:

stretch效果:
    <div class="father stretch">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>
    flex-start效果:
    <div class="father flex-start">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>
    flex-end效果:
    <div class="father flex-end">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>
    center效果:
    <div class="father center">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>
    space-around效果:
    <div class="father space-around">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>
    space-between效果:
    <div class="father space-between">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>

CSS代码:

.father {
    width: 500px;
    height: 80px;
    background-color: pink;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    flex-wrap: wrap;
}

.father span {
    width: 30%;
    border: 1px solid #000;
}

.stretch {
    align-content: stretch;
}

.flex-start {
    align-content: flex-start;
}

.flex-end {
    align-content: flex-end;
}

.center {
    align-content: center;
}

.space-around {
    align-content: space-around;
}

.space-between {
    align-content: space-between;
}

7.flex-flow(deriction和wrap的复合写法)

例如:flex-flow:row wrap

三、子元素属性

1.flex(设置分配份数)

属性说明
1(整数)表示占一个份额
30%(百分比)表示占30%

效果:
在这里插入图片描述

HTML代码:

整数效果:
    <div class="father int">
        <span class="int_1">flex:1</span><span class="int_1">flex:1</span><span class="int_2">flex:2</span>
        <span class="int_4">flex:4</span><span class="int_1">flex:1</span><span class="int_1">flex:1</span>
    </div>
    百分比效果:
    <div class="father">
        <span>1</span><span>2</span><span>3</span>
        <span>4</span><span>5</span><span>6</span>
    </div>

CSS代码:

.father {
    width: 500px;
    height: 80px;
    background-color: pink;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    flex-wrap: wrap;
}

.father span {
    width: 30%;
    border: 1px solid #000;
}

.int_1 {
    flex: 1;
}

.int_2 {
    flex: 2;
}

.int_4 {
    flex: 4;
}

div.percentage span {
    flex: 30%;
}

2.align-self(控制子项的侧轴对齐方式)

例如:align-self:flex-end
效果:
在这里插入图片描述
HTML代码:

子项flex-end:
    <div class="father int">
        <span>flex-start</span>
        <span class="flex_end">flex-end</span>
        <span>flex-start</span>
        <span>flex-start</span>
    </div>

CSS代码:

.father {
    width: 500px;
    height: 80px;
    background-color: pink;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: flex-start;
}

.father span {
    width: 30%;
    border: 1px solid #000;
}

.flex_end {
    align-self: flex-end;
}

3.order(控制子项顺序,值越小越前,默认为0)

例如:order:-1
效果:
在这里插入图片描述

HTML代码:

子项order=-1 :
<div class="father int">
    <span>1</span>
    <span class="order_-1">2(order: -1)</span>
    <span>3</span>
    <span>4</span>
</div>

CSS代码:

.father {
    width: 500px;
    height: 80px;
    background-color: pink;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: flex-start;
}

.father span {
    width: 30%;
    border: 1px solid #000;
}

.order_-1 {
    order: -1;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值