下载鸥 > 网站下载 > 开发教程 > 前端开发

弹性盒子布局全解(多图)

196 2023-05-26 16:40:18

收藏
弹性盒子,通常被称为 flexbox,是一种一维的布局模型。它给弹性元素提供了强大的空间分布和对齐能力,极大的方便了网页的布局和美化。但是对于初学者来说,初次接触弹性盒子这一概念有些模糊,本文通过总结和梳理弹性盒子的概念和属性,更好的帮助大家学习弹性盒子。限于本人知识有限,文章难免有不如意之处,欢迎大家在评论区讨论,我也会虚心听取大家的意见,积极改正。
 

弹性盒子概述

(1)弹性盒子布局(Flexbox Layout),元素可以拉伸以填充额外的空间,也可以收缩以适应更小的空间。

(2)Flexbox可以解决弹性元素在弹性容器中的垂直居中、间隙平均分配和自动占据剩余空间等问题。

弹性盒子布局全解(多图)
弹性盒子布局全解(多图)
 

弹性盒子组成

弹性盒子(Flexbox)由弹性容器(Flex Container)和弹性元素(Flex Item)组成。

下面我们分别讲解弹性容器(Flex Container)和弹性盒子(Flex Item)的样式。
 

弹性容器(Flex Container)样式

(1)display属性(定义弹性容器)
HTML代码:
<div class=“flex-container”>
       <div class=“flex-item”>1</div>
       <div class=“flex-item”>2</div>
       <div class=“flex-item”>3</div>
</div>

CSS代码:
.flex-container{
display:flex;/*定义弹性容器*/
}


弹性盒子布局全解(多图)

(2)flex-direction属性——行布局、列布局
了解这一属性之前,我们得清楚主轴、辅轴的区别。

通俗来讲:主轴:确认排列的方向(默认水平排列); 辅轴:与主轴垂直的方向称为辅轴

flex-direction属性的取值有以下四种情况:row、row-reverse、column和column-reverse,具体表现形式如下:

弹性盒子布局全解(多图)
弹性盒子布局全解(多图)

 

 (3)flex-wrap属性
该属性,决定弹性容器内的弹性元素排列空间不够时是否折行,取值有nowrap(不折行)、wrap(折行)和wrap-reverse(逆向折行),直观表现形式如下:
弹性盒子布局全解(多图)


 (4)flex-flow属性
使用flex-flow属性,可以一步设置弹性容器的flex-direction属性和flex-wrap属性。

具体格式为:flex-flow:flex-direction  flex-wrap

例如:
弹性盒子布局全解(多图)


 (5)justify-content属性
该属性设置元素在主轴上的对齐方式,取值有flex-start(主轴起始位置对齐)、center(主轴居中对齐)、flex-end(主轴结束位置对齐)、space-between(两端对齐)和space-around(拉手对齐)。所谓拉手对齐,就是每个元素主轴方向的两边都会有相等的间隔,当几个元素一起排列时,他们之间的间隔会叠加,看起来就像手拉着手一样。

它们的具体表现形式如下:
弹性盒子布局全解(多图)
弹性盒子布局全解(多图)




 

 (6)align-items属性
有设置元素在主轴上对齐方式的属性,那么也有设置元素在辅轴上对齐方式的属性,它就是align-items属性。掌握了justify-content属性,那么理解align-items属性会简单许多。它的取值主要有flex-start(辅轴起始位置对齐)、center(辅轴居中对齐)、flex-end(辅轴结束位置对齐)和stretch(辅轴方向拉伸以占据剩余空间)。特别注意的是,设置了stretch,需要去除元素高度,否则会以设置的元素高度为主。

它们的具体表现形式如下:

 弹性盒子布局全解(多图)
弹性盒子布局全解(多图)

 

 

 

 (7)align-content属性
该属性用于设置多行元素在容器中的整体对齐方式,只有一行或者一列,该属性不起作用。

align-content可有以下取值:flex-start、flex-end、center、space-between、space-around、stretch等。
弹性盒子布局全解(多图)
 

弹性元素(Flex Item)样式

介绍完了弹性容器样式,我们来看看弹性元素样式。

(1)样式添加方法
HTML代码:
<div class= “flex-container”>
        <div class= “flex-item”>1</div>
        <div class= “flex-item”>2</div>
        <div class= “flex-item”>3</div>
</div>

 CSS代码:
.flex-item{
/*样式添加在这里*/
}

(2)flex-grow属性
该属性设置元素被拉大的比例,按比例分配容器剩余空间。

1.默认值为0:元素不占用剩余空间。

2.取值为n:元素占据剩余空间若干份中的一份。

例如:
弹性盒子布局全解(多图)
 

 (3)flex-basis属性
设置元素在主轴上的默认尺寸,其优先级高于width属性。

(4)flex-shrink属性
设置元素被压缩的比例,默认为1,表示弹性元素默认等比例压缩,0表示不压缩。

例如:

CSS代码:
.flex-container{
display:flex;/*定义弹性容器*/
width:50%;
}
.flex-item{
flex-basis:120px;
border:1px solid;
font-size:20px;
}
div:nth-child(1){
flex-shrink:0;
}
div:nth-child(2){
flex-shrink:1;
}
div:nth-child(3){
flex-shrink:2;
}


样式:
弹性盒子布局全解(多图)


 

(5)flex属性
前面的三种属性,一个一个设置的话,有时候会很麻烦。通过flex属性,我们可以一步设置前面三种属性,高效、方便,但是我们要注意它们的设置顺序。

flex:flex-grow  flex-shrink  flex-basis;

(6)order属性
设置子元素在弹性容器中的排列顺序,数值越小排名越靠前
<div class="flex-container">
    <div class="flex-item">main</div>
    <div class="flex-item">menu</div>
    <div class="flex-item">aside</div>
</div>
弹性盒子布局全解(多图)弹性盒子布局全解(多图)

 (7)align-self属性
设置单个弹性元素在辅轴上的对齐方式,align-items是全部元素。其取值有:auto、flex-start、flex-end、center、baseline、stretch。
弹性盒子布局全解(多图)

自弹性盒子布局出现以来,比以前更好的解决了页面元素布局的问题,如果用得好,就是前端开发一大利器。

本文地址:https://xzo.com.cn/develop/js/1152.html

有帮助,很赞!

信息来源:csdn
导出教程 下载word版教程
发表评论 共有条评论
关于前端开发


JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

JavaScript十分强大,不管是前端页面开发、视觉动态渲染、数据交互还是后端逻辑处理,都可以通过JS实现。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中。

推荐前端开发开发教程
JavaScript过滤XSS攻击方法
JavaScript过滤XSS攻击方法

什么是XSS?XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个...

1 388
jQuery怎样监听鼠标滚动是向上还是向下的状态?
jQuery怎样监听鼠标滚动是向上还是向下的状态?

知乎鼠标向下滚动显示文章标题,向上滚动显示栏目;又或者向下滚动到底部时异步...

0 568
jquery怎样获取textarea用户输入的行数?
jquery怎样获取textarea用户输入的行数?

jQuery是一个相当好用的js插件,通过jquery我们可以实现很多功能,例如今天要介...

0 565
Superslide响应式页面直接应用手机端技巧介绍
Superslide响应式页面直接应用手机端技巧介绍

如果是响应式网站,那么用superslide做轮播图需要做两个,这无疑是非常不方便的...

1 486
swiper轮播图空白案例记录
swiper轮播图空白案例记录

今天鸥哥在用swiper做轮播图时,轮播效果虽然没问题,但只显示第一张,后面的图片...

0 375
JS控制输入字数的两个方案
JS控制输入字数的两个方案

我们在文章输入框中经常有用到字数控制,但字数控制有两种方案,一种是字母/空...

0 399
jQuery监听点击事件弹出关注二维码教程
jQuery监听点击事件弹出关注二维码教程

通过jQuery实现点击关注按钮弹出二维码是一个比较常用的功能,今天鸥哥讲讲这...

0 500
JS获取浏览器语言(中英文多语言站)并自动跳转代码
JS获取浏览器语言(中英文多语言站)并自动跳转代码

如果是多语言站点,主动获取浏览器默认语言并自动进行跳转可以有效降低跳出率...

0 991
推荐插件
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 472
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 1019
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 782
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1127
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 525
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 736
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 407
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 423
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入