Day07-flex布局

news2024/11/15 5:53:16

文章目录

  • 弹性布局
    • 一 简介
    • 二 弹性容器
      • 案例-让多个div排成一行
    • 三 容器项目的对齐方式
      • 案例1-justify-content(主轴对齐)
      • 案例2-flex-wrap(换行)
      • 案例3-align-items(侧轴对齐)
      • 案例4-align-self(项目垂直对齐)
      • 案例5-flex-direction(改变轴向)
      • 案例6-弹性布局应用
    • 四 弹性项目-flex属性
      • 案例1-按比例分配宽度
      • 案例2-后台管理界面
    • 五-语义化标签
    • 六-作业-个人中心布局

弹性布局

一 简介

弹性布局是2009年css新增的一种布局方式,用来替代float浮动布局. 因为float布局它有明显的缺陷: 1.板块塌陷 2.排版困难。

二 弹性容器

采用 Flex 布局的元素,称为 Flex 容器(flex container)。它的所有子元素称为 Flex 项目(flex item);

弹性容器默认存在两根轴:水平的主轴和垂直的侧轴。弹性项目默认沿主轴排列。

image-20221130154326231

案例-让多个div排成一行

image-20230227095953079

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            height: 500px;
            border: 1px red solid;
            /* 
                    只要在div中使用  display: flex; div就变成了弹性容器,
                弹性容器里面的元素称为弹性项目,弹性项目默认水平排列
                
            */
            display: flex;
        }

        .box .small{
            width: 100px;
            height: 200px;
            background-color: pink;
        }

    </style>
</head>
<body>
    <div class="box">
        <div class="small">1</div>
        <div class="small">2</div>
    </div>
</body>
</html>

弹性布局 display: flex

三 容器项目的对齐方式

案例1-justify-content(主轴对齐)

image-20221213095209234

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            height: 500px;
            border: 1px red solid;
            display: flex;
            /* 主轴对齐 */
            justify-content: space-evenly;

        }

        .box .small1{
            width: 100px;
            height: 200px;
            background-color: pink;
        }

        .box .small2{
            width: 100px;
            height: 200px;
            background-color: green;
        }
        .box .small3{
            width: 100px;
            height: 200px;
            background-color: blue;
        }

    </style>
</head>
<body>
    <div class="box">
        <div class="small1">1</div>
        <div class="small2">2</div>
        <div class="small3">2</div>
    </div>
</body>
</html>

justify-content

​ 左flex-start

​ 中center

​ 右flex-end

​ 两端对齐space-between

​ 平均分配(视觉上的空间不相等)space-around

​ 平均分配(视觉上的空间相等) space-evenly

案例2-flex-wrap(换行)

image-20221227122305078

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 250px;
            height: 500px;
            border: 1px red solid;
            display: flex;
            /* 
                    当弹性容器一行装不下所有的弹性项目时,弹性项目的宽度默认会被压缩
                我们可以通过flex-wrap: wrap;让多余的弹性项目换行
            */

            flex-wrap: wrap;
        }

        .box .small1{
            width: 100px;
            height: 200px;
            background-color: pink;
        }

        .box .small2{
            width: 100px;
            height: 200px;
            background-color: green;
        }
        .box .small3{
            width: 100px;
            height: 200px;
            background-color: blue;
        }

    </style>
</head>
<body>
    <div class="box">
        <div class="small1">1</div>
        <div class="small2">2</div>
        <div class="small3">2</div>
    </div>
</body>
</html>

flex-wrap控制子元素在一条轴线排不下的换行方式

​ 不换行(默认)nowrap

​ 换行wrap

案例3-align-items(侧轴对齐)

image-20221222153814499

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            height: 500px;
            border: 1px red solid;
            display: flex;
            /* 
                侧轴对齐
                    当弹性项目不写高度时,高度自动拉伸
                    当弹性项目写了高度后,可以实现 上 中 下的对齐方式
            
            */
            /* align-items: center; */
        }

        .box .small1{
            width: 100px;
            height: 200px;
            background-color: pink;
        }

        .box .small2{
            width: 100px;
            height: 200px;
            background-color: green;
        }
        .box .small3{
            width: 100px;
            height: 200px;
            background-color: blue;
        }

    </style>
</head>
<body>
    <div class="box">
        <div class="small1">1</div>
        <div class="small2">2</div>
        <div class="small3">2</div>
    </div>
</body>
</html>

align-items属性定义项目在侧轴上如何对齐。

​ 上flex-start

​ 中center

​ 下flex-end

​ 默认值 stretch

案例4-align-self(项目垂直对齐)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            height: 500px;
            border: 1px red solid;
            display: flex;
        }

        .box .small1{
            width: 100px;
            height: 200px;
            background-color: pink;
            /* 
                我们可以单独设置某个弹性项目的侧轴对齐方式
                align-self: flex-end;
            */
            align-self: flex-end;
        }

        .box .small2{
            width: 100px;
            height: 200px;
            background-color: green;   
        }
        .box .small3{
            width: 100px;
            height: 200px;
            background-color: blue;
        }

    </style>
</head>
<body>
    <div class="box">
        <div class="small1">1</div>
        <div class="small2">2</div>
        <div class="small3">2</div>
    </div>
</body>
</html>

align-self 调整单个弹性项目的侧轴对齐,不做整体调整

​ 上flex-start

​ 中center

​ 下flext-end

案例5-flex-direction(改变轴向)

image-20221222160141151

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            height: 500px;
            border: 1px red solid;
            display: flex;
            /* 
                改变轴向
                    让主轴垂直,侧轴水平
            
            */
            flex-direction: column;
        }

        .box .small1{
            width: 100px;
            height: 100px;
            background-color: pink;
        }

        .box .small2{
            width: 100px;
            height: 100px;
            background-color: green;   
        }
        .box .small3{
            width: 100px;
            height: 100px;
            background-color: blue;
        }
    </style>


</head>
<body>
    <div class="box">
        <div class="small1">1</div>
        <div class="small2">2</div>
        <div class="small3">2</div>
    </div>
</body>
</html>

flex-direction属性决定主轴的方向

​ 水平row

​ 垂直column

案例6-弹性布局应用

image-20221212113641985

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 300px;
            height: 300px;
            border: 1px red solid;
            display: flex;
            /* 改变轴向 */
            flex-direction: column;
            /* 主轴居中 */
            justify-content: center;
            /* 侧轴居中 */
            align-items: center;
        }

        img{
            width: 150px;
        }
    </style>
</head>
<body>
    <div class="box">
        <img src="https://woniufile.oss-cn-hangzhou.aliyuncs.com/banner/.com.pc.jpg" alt="">
        我是一张小图片
    </div>
</body>
</html>

四 弹性项目-flex属性

这个属性用来处理容器的富余空间

案例1-按比例分配宽度

image-20230227121745997

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 500px;
            height: 200px;
            border: 1px solid red;
            display: flex;
            
        }
        .box .s1{
            flex: 1;
            background-color: orange;
        }
        .box .s2{
            background-color: aqua;
            flex: 2;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="s1"></div>
        <div class="s2"></div>
    </div>
</body>
</html>

案例2-后台管理界面

image-20221212144329674

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0px;
            padding: 0px;
        }
        html{
            height: 100%;
        }
        body{
            height: 100%;
        }
        .box{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .box .head{
            height: 100px;
            background-color: aqua;
        }
        .main{
            background-color: orange;
            flex: 1;
            display: flex;
        }
        .aside{
            width:200px ;
            background-color: gray;
        }
        .content{
            background-color: pink;
            flex-grow: 2;
        }
        .box .copyright{
            height: 100px;
            background-color: black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="head"></div>
        <div class="main">
            <div class="aside"></div>
            <div class="content"></div>
        </div>
        <div class="copyright"></div>
    </div>
</body>
</html>

五-语义化标签

header main nav footer等r这些名字,我们在前端项目开发中经常用,在H5的时候提出了语义化标签

        <header></header>
        <nav></nav>
        <main></main>
        <footer></footer>

语义化标签本质上还是div

语义化标签可以提高开发速度,提高代码的可读性

六-作业-个人中心布局

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/382079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离开央视的欧阳夏丹,在艺考培训机构当老师,是金子到哪都会发光

说起中央电视台&#xff0c;大家都认为这是主持界的殿堂&#xff0c;但凡能在这里工作的人&#xff0c;都是出类拔萃的人才。在中央电视台&#xff0c;确实也出现过很多人才&#xff0c;比如说主持界的康辉、撒贝宁、朱军、周涛等等。 除了以上这些主持人&#xff0c;欧阳夏丹也…

【高效办公】批量生成固定模板的文件夹名称

老师让你按照他的要求生成每位学生的文件夹,你是学委,让你马上完成该任务,但你又不想是手动一个一个码字,因此聪明的你就看到了本篇文章啦!!! 虽说一个人懒惰,并不是好的事情。 但这个似乎合情合理啊~ 然后,就动手想办法,一开始就真的打算码字了。。 思路 在实际开…

机器学习笔记之狄利克雷过程(二)基于标量参数作用的推导过程

机器学习笔记之狄利克雷过程——基于标量参数作用的推导过程引言回顾&#xff1a;狄利克雷过程——基本介绍狄利克雷过程——定义小插曲&#xff1a;狄利克雷分布的简单性质关于标量参数作用的推导过程引言 上一节以高斯混合模型为引&#xff0c;简单介绍了狄利克雷过程(Diric…

虹科分享| 浅谈HK-Edgility边缘计算平台

上周&#xff0c;我们推出了虹科新品HK-Edgility边缘计算平台以及uCPE解决方案。本篇文章我们再来谈一谈到底什么是边缘计算&#xff1f;为什么需要边缘计算&#xff1f;边缘计算和云计算有什么关系&#xff1f;HK-Edgility边缘计算平台将为您带来什么&#xff1f;一、边缘计算…

【C++】vector实现(深浅拷贝详细理解,迭代器失效)

&#x1f345;可以先去这个网站看一下个个函数的功能 本文不再详细介绍&#xff0c;vector的底层还是顺序表&#xff0c;我讲的很详细&#xff0c;建议没学过顺序表的先预习一下&#xff08;主页搜索顺序表&#xff0c;还有配套习题&#xff09; C网站关于vector的接口函数信息…

雅思积累(十八)同义替换

同义替换&#xff1a;sophisticated —— complicatedspecific —— detailed —— particularquantity —— wealth —— volume —— numbersettle —— schedule —— arrange —— fixswift —— rapid —— fast —— quickexpertise —— professional knowledge —— sk…

【云原生kubernetes】k8s中job与cronjob使用详解

一、前言 job&#xff0c;顾名思义就是任务&#xff0c;job的概念在很多框架中都有&#xff0c;而且实际业务场景中也使用非常广泛&#xff0c;比如大家熟悉的hadoop&#xff0c;客户端可以向集群提交一个job&#xff0c;然后集群根据一定的调度策略来处理这个job&#xff1b; …

【2023unity游戏制作-mango的冒险】-6.关卡设计

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity游戏制作 ⭐mango的冒险关卡设计⭐ 文章目录⭐mango的冒险关卡设计⭐&#x1f468;‍&#…

软件测试之jira

Jira 1. Jira 概述 JIRA 是澳大利亚 Atlassian 公司开发的一款优秀的问题跟踪管理软件工具&#xff0c;可以对各种类型的问题进行跟踪管理&#xff0c;包括缺陷、任务、需求、改进等。JIRA采用J2EE技术&#xff0c;能够跨平台部署。它正被广泛的开源软件组织&#xff0c;以及…

更新 TKK 失败,请检查网络连接。谷歌翻译 translation插件不能用解决办法 亲测有效

谷歌翻译无法使用&#xff0c;谷歌回应解释是&#xff0c;谷歌翻译使用率过低&#xff0c;所以选择停止服务。网上也有说法&#xff0c;指出根本原因为&#xff0c;提供API接口的googleapis被墙&#xff0c;这导致js文件和字体资源无法加载。 这里提供两种解决办法 方案一 修…

枯燥迷茫?先来玩玩这些经典的计算机视觉项目

B站|公众号&#xff1a;啥都会一点的研究生 颜色检测 从检测颜色到绿幕应用&#xff08;用自定义视频或背景替换绿色背景&#xff09;&#xff0c;再到简单的照片编辑软件&#xff0c;构建颜色识别器是计算机视觉入门的一个很棒的项目 项目地址&#xff1a;https://github.…

PostgresSQL存储过程和触发器

在次之前首先要搞清楚一个概念 存储过程和触发器&#xff0c;是在基础sql语句之后的另一门语言&#xff0c;类似小学的加减乘除和奥数的关系&#xff0c;他们虽然都是数学&#xff0c;但是运算复杂度和定向思维都有了很大程度的不同 这篇文章不打算把存储过程和触发器事无巨细…

SAP 详细解析SCC4

事务代码&#xff1a;SCC4&#xff0c;选择一个客户端&#xff0c;点击进入&#xff0c;如图&#xff1a; 一、客户端角色 客户控制&#xff1a;客户的角色&#xff08;生产性&#xff0c;测试&#xff0c;...&#xff09; 此属性表示 R/3 系统中的客户端角色。其中可能包括…

简单分析Linux虚拟化KVM-Qemu之vhost-net

说明&#xff1a; KVM版本&#xff1a;5.9.1 QEMU版本&#xff1a;5.0.0 工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 让我们先来看看问题的引入&#xff0c;在之前的virtio系列文章中&#xff0c;网络虚拟化的框架如下图所示&#xff1a; ​ ​ Qemu中的…

WebRTC-NACK、Pacer和拥塞控制和FEC

NACK机制发送端实现NACK的三个重点流程&#xff1a;发送RTP报文&#xff0c;实时存储报文到packet_history_队列处理接收到的RTCP NACK报文把nack包里的序号放到nack_sequence_numbers丢包队列重发NACK反馈的RTP报文重发报文这里有三点需要注意&#xff1a;1&#xff09;会判断…

Allegro如何查看PCB上器件的库路径操作指导

Allegro如何查看PCB上器件的库路径操作指导 在做PCB设计的时候,有时需要检查PCB上器件使用的库的路径是否正确,Allegro支持快速将PCB上所有器件的库路径都列出来 如下图 如何显示这个报表,具体操作如下 点击Tools点击Report

蓝桥杯-求和问题

蓝桥杯-求和问题1、问题描述2、解法一&#xff1a;暴力解法(两层循环)3、解法二&#xff1a;结合律(一层循环解决)1、问题描述 给定 n 个整数 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​&#xff0c;求它们两两相乘再相加的和&#xff0c;即&#xff1a; Sa1.a2a1.a3...a…

Presto 在美图的实践

导读&#xff1a;本文的主题是Presto高性能引擎在美图的实践&#xff0c;首先将介绍美图在处理ad-hoc场景下为何选择Presto&#xff0c;其次我们如何通过外部组件对Presto高可用与稳定性的增强。然后介绍在美图业务中如何做到合理与高效的利用集群资源&#xff0c;最后如何利用…

项目管理的主要内容包括哪些?盘点好用的项目管理系统软件

阅读本文您将了解&#xff1a;1、项目管理的主要内容包括哪些2、好用的项目管理软件 项目管理是为了实施一个特定目标&#xff0c;所实施的一系列针对项目要素的管理过程&#xff0c;包括过程、手段以及技术等。 通过项目管理&#xff0c;我们能够提前安排和控制项目的时间、…

深度解析:我如何用300并发把数据库压挂了

问&#xff1a;为什么300的并发能把支持最大连接数4000数据库压死&#xff1f; 买了一台数据库&#xff0c;最大连接数的参数是 4000&#xff0c;看起来很棒&#xff01;但是 cpu 和内存并不咋好&#xff01;是 2c4g的超低配制。但是想着反正业务量也不大&#xff0c;不如先扛…