一、flex布局体验

1.1 传统布局 flex 布局

1. 2 初体验

1. 搭建 HTML 结构

<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>

2. 添加样式

<style>
div {
width: 80%;
height: 300px;
background-color: pink;
display: flex;
justify-content: space-around; }
div span {
width: 150px;
height: 100px;
background-color: purple;
margin-right: 5px;
}
</style>



在 div中 添加 display: flex; justify-content: space-around;



并且是自适应的效果

在 span 中添加 flex:1;,可以实现三等分

二、 flex 布局原理

2.1 布局原理

注意:不管是块级元素,还是行内元素,都可以使用 flex 布局

三、flex布局父项常见属性

3.1 常见父项属性

3.2 flex-direction 设置主轴的方向

1.主轴与侧轴

2. 属性值



栗子:

<style>
div {
width: 80%;
height: 300px;
background-color: pink;
/*给父级添加 flex 属性*/
display: flex;
}
div span {
width: 150px;
height: 100px;
background-color: purple;
margin-right: 5px;
}
</style>
<body>
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>
</body>

默认就是 默认的主轴就是 x 轴 行 row flex-direction:row;

那么 y 轴就是 侧轴

我们的元素是跟着主轴来排列的

x 轴翻转: flex-direction: row-reverse;



我们可以把主轴弄成 y 轴,那么 x 轴就成为了 侧轴

flex-direction: column;

flex-direction: column-reverse;

3.3 justify-content 设置主轴上的排列方式

注意:只跟主轴来走,跟侧轴没有关系



栗子:

<style>
div {
width: 60%;
height: 300px;
background-color: pink;
display: flex;
/*justify-content:是设置主轴上元素的排列方式*/
/*默认从左到右排列*/
/*justify-content: flex-start;*/
}
div span {
width: 150px;
height: 100px;
background-color: purple;
margin-right: 5px;
margin-bottom: 5px;
}
</style>
<body>
<div>
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
</body>

  1. 让子元素从尾部(从右到左或者从下往上)排列

    justify-content: flex-end;

  2. 让我们的子元素居中对齐

    justify-content: center;

  3. 平方剩余空间

    justify-content: space-around;

每个子元素的 margin-left 和 margin-right 都是相等的

  1. 先两边贴边,再分配剩余的空间

    justify-content: space-between;



5. 设置主轴为 Y 轴并且沿 Y 轴 垂直居中

flex-direction: column;

justify-content: center;

3.4 flex-wrap 设置子元素是否换行

栗子:

<style>
div {
width: 500px;
height: 300px;
background-color: pink;
display: flex;
}
div span {
width: 150px;
height: 100px;
background-color: purple;
margin-right: 5px;
margin-bottom: 5px;
}
</style>

注意: 在 flex 布局中,默认子元素是不换行的,如果子元素添加的话,父元素装不下子元素,会缩小子元素的宽度,放到父元素里面

默认是 flex-wrap : nowrap



让子元素换行显示: flex-wrap: wrap;

3.5 align-items设置侧轴上的子元素排列方式(单行)



栗子:

  1. 实现水平居中和垂直居中(前提是主轴是默认的 x 轴)
<style>
div {
width: 800px;
height: 300px;
background-color: pink;
display: flex;
justify-content: center;
align-items: center;
}
div span {
width: 150px;
height: 100px;
background-color: purple;
margin: 10px;
}
</style>

  1. align-items: flex-start;

  2. align-items: flex-end;

  3. 如果设置主轴是 y 轴的话

    display: flex;

    justify-content: center;

    align-items: center;

    flex-direction: column;

  4. 拉伸,但是子元素不给高度,不然是没有效果的

    align-items: stretch;

3.6 align-content 设置侧轴上的子元素的排列方式(多行)



栗子:

  1. 设置 align-content: flex-start;
div {
width: 600px;
height: 300px;
background-color: pink;
display: flex;
flex-wrap: wrap;
align-content: flex-start;
}

  1. 设置 align-content:center

  2. 设置 align-content: space-between;

  3. 设置 align-content: space-around;

3. 6 align-itemsalign-content 的区别

3.7 flex-flow



栗子:

flex- flow: column wrap

就相当于同时设置了

flex-wrap: wrap;flex-direction: column;

四、flex 布局子项常见属性

4.1 flex 属性

栗子:

<style>
section {
display: flex;
width: 80%;
height: 150px;
/*background-color: green;*/
}
section div:nth-child(1){
width: 100px;
height: 150px;
background-color: pink;
}
section div:nth-child(2){
flex: 1;
background-color: purple;
}
section div:nth-child(3){
width: 100px;
height: 150px;
background-color: orange;
}
</style>
<body>
<section>
<div></div>
<div></div>
<div></div>
</section>
</body>



左右两侧是固定的,中间是自适应的

栗子2:

 p {
width: 80%;
height: 150px;
margin: 50px auto;
background-color: pink;
display: flex;
}
p span{
flex: 1;
}
<p>
<span>1</span>
<span>2</span>
<span>3</span>
</p>

注意:不给子项宽度,默认剩余宽度就是父盒子的宽度

栗子3:

    p span{
flex: 1;
}
p span:nth-child(2){
background-color: purple;
flex: 2;
}



并且三个span都可以进行自适应

4.2 align-self 控制子项自己在侧轴上的排列方式

栗子:

<style>
div {
width: 60%;
height: 300px;
background-color: pink;
display: flex;
}
div span{
width: 150px;
height: 100px;
background-color: purple;
margin-right: 5px;
</style>
<body>
<div>
<span>1</span>
<span>2</span>
<span>3</span>
</div>



我们想要 第三个盒子在下面底侧

div span:nth-child(3){
align-items: flex-end
}

4.3 order 属性定义项目的排列顺序



栗子:

 div span:nth-child(2){
order: -1;
}

第2个盒子与第1个盒子交换了,order默认是0,这里设置了-1 ,所以第2个盒子跑到了第1个盒子的前面

五、携程网首页制作

https://blog.csdn.net/qq_45103612/article/details/111146551

移动 WEB 开发布局方式 ---- flex 布局的更多相关文章

  1. 移动Web开发-WebApp(flex布局+移动端导航案例)

    实际开发中的像素:css像素设备像素比dpr=设备像素/css像素标清屏dpr=1 高清屏dpr=2缩放改变的是css像素大小PPI(每英寸的物理像素点)=根号(屏幕横向分辨率²+屏幕纵向分辨率²)/ ...

  2. 布局方式-flex布局

    .弹性盒子 .盒子本来就是并列的 .指定宽度即可 <style> .container { width: 800px; height: 200px; display: flex; bord ...

  3. 弹性布局(Flex布局)整理

    一.  弹性布局 一个好的网站都有让用户看上去很舒服的布局,一个网站的布局也会或多或少影响到它的浏览量,看完阮大神的博客,就想把弹性布局整理一下. 在平时的我们常用的布局类型有以下几种: 1.浮动+定 ...

  4. 前端(八)—— 高级布局:文档流、浮动布局、流式布局、定位布局、flex布局、响应布局

    高级布局:文档流.浮动布局.流式布局.定位布局.flex布局.响应布局 一.文档流 1.什么是文档流 将窗体自上而下分成一行一行,块级元素从上至下.行内元素在每行中从左至右的顺序依次排放元素 2.本质 ...

  5. cdispaly的Grid布局与Flex布局

    cdispaly的Grid布局与Flex布局 Gird 布局与 Flex 布局有一定的相似性,都是对容器的内部项目进行划分. Flex 布局是轴线布局,只能指定项目针对轴线的位置,可以看作成一维布局 ...

  6. 2021年3月-第02阶段-前端基础-Flex 伸缩布局-移动WEB开发_流式布局

    移动web开发流式布局 1.0 移动端基础 1.1 浏览器现状 PC端常见浏览器:360浏览器.谷歌浏览器.火狐浏览器.QQ浏览器.百度浏览器.搜狗浏览器.IE浏览器. 移动端常见浏览器:UC浏览器, ...

  7. 浅谈新的布局方式-flex

    引言: 网页布局在flex出来之前,是由盒模型为底子,float,position,table,百分比来进行布局的,重绘的比较多,影响性能,复杂又不好维护.flex布局,可以简便.完整.响应式地实现各 ...

  8. css3弹性伸缩布局(一)—————flex布局

    CSS3弹性伸缩布局简介 2009年,W3C提出了一种崭新的方案—-Flex布局(即弹性伸缩布局),它可以简便.完整.响应式地实现各种页面布局,包括一直让人很头疼的垂直水平居中也变得很简单地就迎刃而解 ...

  9. CSS布局方式--inline-block 布局

    布局其实就是想办法怎样将一些元素横向的排列起来,纵向由于块级元素的存在会自动占据一行. inline-block 元素会占据一行而且可以调整宽高很适合将这些元素排列在一行,而且使用 inline-bl ...

  10. 关于基本布局之——Flex布局

    Flex布局 1.Flex为"Flexible Box"的简称,即为弹性布局,可作用于任何容器上.给div这类块状元素元素设置display:flex或者给span这类内联元素设置 ...

随机推荐

  1. salesforce零基础学习(一百二十)快去迁移你的代码中的 Alert / Confirm 以及 Prompt吧

    本篇参考: https://developer.salesforce.com/blogs/2022/01/preparing-your-components-for-the-removal-of-al ...

  2. java学习之EL和JSTL

    0x00前言 EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记 0x01EL 0x1基本用法 概念:Expression language 表达式语言 作用:替 ...

  3. WebApi实现Token验证

    为什么要实现Token呢.在我们客户端发送请求时,如果没有校验数据是否合法那么就有可能造成非法请求泄露我们的数据 实现Token的思路 1.客户端通过用户名和密码来获取Token 通过自己的账号和密码 ...

  4. Xamarin.Android带参数返回上一级界面

    在ActivityA跳转到ActivityB后.activityB返回到ActivityA并带参数返回 首先再activitya中跳转到b var intent = new Intent(this, ...

  5. 关于linux建立u盘legacy启动方式引导

    前言 我一直在用linux,但是我在linux制作pe启动盘无法实现,windows有很多制作pe启动盘的软件,如大白菜,u深度什么的,但是linux没有对应的软件,所以我想写一个类似的工具,那么就有 ...

  6. 规则引擎Drools在贷后催收业务中的应用

    作者:vivo 互联网服务器团队- Feng Xiang 在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景.为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务 ...

  7. 编译器优化丨Cache优化

    摘要:本文重点介绍几种通过优化Cache使用提高程序性能的方法. 本文分享自华为云社区<编译器优化那些事儿(7):Cache优化>,作者:毕昇小助手. 引言 软件开发人员往往期望计算机硬件 ...

  8. 【Java EE】Day01 基础加强、Junit单元测试、反射、注解

    〇.总结 1.测试:三个注解.断言判断 2.反射:三个阶段获取字节码对象的三种方式.忽略成员变量权限方法setAccessible(true) 3.注解:内置注解SupressWarning& ...

  9. 【Flume】概述及组成、入门案例、进阶(事务、拓扑结构)、不同拓扑案例、自定义、数据流监控Ganglia

    一.概述 1.定义 日志采集.聚合.传输的系统,基于流式结构 即:读取本地磁盘数据,写入HDFS或kafka 2.架构 Agent:JVM进程,以事件形式将数据送到目的地. Agent由三部分组成:S ...

  10. re、base64的结合使用爬取豆瓣top250

    一.缘由 对于豆瓣的这个网站,记得使用了不少于三种的爬取和解析方式来进行的.今天的这种解析方式是我使用起来较为顺手,后来就更喜欢使用xpath解析,但是这两种也需要掌握. 二.代码展示 '''爬取豆瓣 ...