弹性盒子布局

文章详细介绍了Flex布局的使用,包括如何设置display:flex,主轴对齐方式如justify-content:space-between、center等,侧轴对齐方式如align-items:center,以及伸缩比的概念和应用。此外,还讲解了圣杯布局的实现方法和flex-direction、flex-wrap属性的作用,强调了Flex布局的优势和在某些场景下的兼容性问题。
摘要由CSDN通过智能技术生成

flex布局


flex布局极大的提高了我们布局的效率,更简单、灵活

语法:display:flex;一定要给父元素添加。

主轴对齐方式

重点记住标红的。常用的是

justify-content: space-between;

显示效果 :两侧没缝隙

justify-content: space-around;

显示效果:按1:2进行排列

justify-content: space-evenly;

显示效果:缝隙与两侧空隙按1:1进行排列

justify-content: center;

显示效果:经常用于让一个盒子水平居中

记忆:

  1. 两侧缝隙是between

  1. 缝隙一样大是evenly

  1. 2倍缝隙是around

小技巧:

见到这个效果,做简单的做法就是:给大盒子左右的padding,然后再加

justify-content: space-between

侧轴对齐方式

重点记住center,可以让元素垂直居中。

align-items: center;

我们可以通过flex让一个盒子水平和垂直居中。

.father {
    width: 500px;
    height: 500px;
    background-color: pink;
    /* 设置为flex布局 */
    display: flex;
    /* 主轴水平居中 */
    justify-content: center;
    /* 侧轴垂直居中 */
    align-items: center;
}

.son {
    width: 200px;
    height: 200px;
    background-color: purple;
}

伸缩比

把父盒子分为若干份数,每个子盒子各占几份。

flex:1; 一定给子盒子加
分配父级剩余的空间

语法:

flex: 1;

比如有一个父盒子里面有三个子盒子,每个子盒子写 flex:1; 此时每个子盒子各占三分之一。

.father {
    display: flex;
    height: 300px;
    background-color: pink;
}

.father div {
    /* 每个孩子各占1份 */
    flex: 1;
    /* 默认子盒子和父亲一样高 */
    background: purple;
}

html 结构

<div class="father">
    <div>1</div>
    <div>2</div>
    <div>3</div>
</div>

显示效果:

1.一定要给子盒子添加。
2.子盒子默认高度会和父盒子一样高。(前提是不给高度)

圣杯布局

所谓的圣杯布局就是左右两边大小固定不变,中间宽度自适应。

一般这种布局方式适用于各种移动端顶部搜索部分,这是最常见的,如京东手机版主页面顶部搜索

核心思路:

  • 两侧盒子写固定大小

  • 中间盒子 flex: 1; 占满剩余空间

.top {
    display: flex;
    justify-content: c;
}

.top div:first-child {
    width: 50px;
    height: 50px;
    background-color: red;
}

.top div:last-child {
    width: 50px;
    height: 50px;
    background-color: red;
}

.top div:nth-child(2) {
    flex: 1;
    height: 50px;
    background-color: pink;
}

注意点:中间flex: 1; 和 width 有冲突。 优先执行 flex:1;


设置主轴方向

主轴默认是水平方向, 侧轴默认是垂直方向

修改主轴方向属性: flex-direction

语法:

flex-direction:column;

修改完毕,主轴是Y轴, 侧轴是X轴。


弹性盒子换行

特性: 给父亲添加了 display: flex; 所有的子盒子(弹性盒子)都会在一行显示,不会自动换行。

语法:

flex-wrap: wrap;

设置侧轴对齐方式

注意:

  1. 此处设置侧轴多行的垂直对齐方式。 align-content(少)

  1. 和前面学过的 align-items (侧轴单行垂直对齐) (多)

  1. align 垂直 比如 align-items 垂直对齐 align-content 多行垂直对齐

  1. content 主轴 justify-content align-content 侧轴多行对齐

align-content:center;

小结:

  1. 在flex眼中,标签不再分类。

  • 简单说就是没有块级元素,行内元素和行内块元素

  • 任何一个元素都可以直接给宽度和高度一行显示

  1. Flex不存在脱标的情况:也就是基本淘汰了浮动,更不用清除浮动

  1. 当然存在兼容性问题,如果不考虑兼容性可以大量使用,如果是移动端则不用考虑直接flex

https://caniuse.com/ 可以查看兼容性

  • 1
    点赞
  • 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、付费专栏及课程。

余额充值