用Flex布局模型开发网页

2023-10-27

目录

一、为什么要用Flex布局,对比浮动有什么优点

二、Flex布局组成

三、如何使用Flex布局

1、基本方法

2、主轴对齐方式

3、侧轴对齐

4、改变主轴方向

5、弹性盒子换行

四、弹性盒子多场景运用

1、圣杯布局

2、如何让父盒子里面盒子水平垂直居中


一、为什么要用Flex布局,对比浮动有什么优点

1、布局网页更简单、灵活,更加精确的控制盒子布局

2、避免浮动脱标的问题

二、Flex布局组成

  •  弹性容器:父元素
  • 弹性盒子:子元素(默认在盒子里面水平排列,自动挤压或者拉伸)
  • 主轴(默认水平方向X轴)
  • 侧轴/交叉轴(Y轴)

三、如何使用Flex布局

1、基本方法

    父元素添加display:flex使父盒子变成一个弹性盒子

2、主轴对齐方式

     给父元素添加属性justify-content,不同属性值代表不同的涵义,如下

  •       flex-start:默认值, 起点开始依次排列
  •       flex-end :终点开始依次排列
  •       center :沿主轴居中排列
  •       space-around :弹性盒子沿主轴均匀排列, 空白间距均分在弹性盒子两侧
  •      space-between :  弹性盒子沿主轴均匀排列, 空白间距均分在相邻盒子之间
  •      space-evenly :弹性盒子沿主轴均匀排列, 弹性盒子与容器之间间距相等主轴对齐方式             

3、侧轴对齐

    给父元素添加属性值align-item:flex控制所有子元素;给单个元素添加align-self控制单个盒子。不同属性值如下:

  • flex-start  起点开始依次排列
  • flex-end  终点开始依次排列
  • center  沿侧轴居中排列
  • stretch  默认效果, 弹性盒子沿着侧轴线被拉伸至铺满容器
<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: 1200px;
            height: 200px;
            margin: 100px auto;
            background-color: pink;
            /*  弹性容器 */
            display: flex;
            /* 主轴对齐方式 */
            justify-content: space-between;
        }

        .box>div {
            width: 250px;
            height: 200px;
            background-color: aqua;
        }

        .box>div:nth-child(2n) {
            background-color: yellowgreen;
        }

        /* 通过父元素,操作子元素.弹性布局 */
    </style>
</head>

<body>
    <div class="box">
        <!-- 弹性盒子 默认放在一排 -->
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

4、改变主轴方向

flex布局默认以X轴为主轴,可以给父元素添加属性flex-direction后Y轴变成主轴,使子元素按照Y轴垂直排列。属性值如下:

  • row   行, 水平(默认值)
  • column   列, 垂直
  • row-reverse  行, 从右向左
  • column-reverse  列, 从下向上

5、弹性盒子换行

给父元素添加flex-wrap:wrap可以实现弹性盒子多行排列效果

多行盒子侧轴对齐方式用 align-content,取值与justify-content基本相同

四、弹性盒子多场景运用

1、圣杯布局

两边大小固定不变,中间宽度自适应,一般用于移动端顶部搜索部分。写法:两侧盒子写固定大小,中间盒子flex:1,沾满剩余空间

<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: 0;
            padding: 0;
        }

        .search {
            width: 100%;
            height: 50px;
            background-color: pink;
            /* 弹性容器 */
            display: flex;
        }

        .search .left {
            width: 50px;
            height: 50px;
            background-color: aqua;
        }

        .search .center {
            flex: 1;
            background-color: red;
        }

        .search .right {
            width: 50px;
            height: 50px;
            background-color: aqua;
        }
    </style>
</head>

<body>
    <!-- 圣杯布局,2边固定宽高,中间自适应 -->

    <div class="search">
        <div class="left">左边</div>
        <div class="center">中间的内容</div>
        <div class="right">右边</div>
    </div>
</body>

2、如何让父盒子里面盒子水平垂直居中

给父盒子添加display:flex变成弹性容器,再添加水平和垂直居中

<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: 400px;
            height: 400px;
            background-color: pink;
            /* 弹性容器 */
            display: flex;
            /* 主轴对齐 */
            justify-content: center;
            /* 侧轴对齐 */
            align-items: center;
        }

        /* 子盒子是弹性盒子 */
        .box .son {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="son"></div>
    </div>
</body>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Flex布局模型开发网页 的相关文章

  • 角度错误:冲突:多个资源向同一文件名 file.svg 发出不同的内容

    我有这个css in my component scss file bg background url assets images file svg center center no repeat 并且该路径中只有一个 svg 文件 因此每
  • 工具提示未显示在 fontawesome 图标按钮上

    我有一个很棒的图标嵌套在 a 中 但工具提示没有弹出 i class fa fa random title some tooltip i style i fa display inline block 如果您使用的工具提示插件使用 befo
  • 所选项目的值[重复]

    这个问题在这里已经有答案了 我正在使用一个
  • 我正在尝试将变量从 Google 脚本传递到 HtmlOutputFromFile

    我正在尝试创建一个带有下拉列表的输入框 其中该列表基于从电子表格中提取的二维数组 到目前为止 我的研究告诉我 如果我将 HtmlService createHtmlOutputFromFile 存储在一个变量中 我就可以 设置该变量的属性
  • 带有可点击标签的单选按钮组

    根据我收集的信息 为了使单选按钮的标签可单击 您必须为两个元素分配相同的 name 属性值 我遇到的问题是 当您有多个单选按钮时 请说 是或否 类型选择 为了使其到达单击其中一个时 另一个禁用的位置 两个单选按钮的 名称 属性必须具有相同的
  • 如何检测谷歌地图是否加载成功

    我在我的网站中使用谷歌地图版本 3 我遇到了地图有时无法加载的问题 而是显示为灰色框 并且浏览器日志将充满错误 不幸的是 我现在无法获取日志 因为地图再次工作 根据一些研究 问题是因为我使用的实验版本 有没有办法查明地图是否已成功加载或崩溃
  • Mousemove视差效果移动div的位置

    我正在尝试创建轻微的视差效果 我不确定它是否真的构成视差 但这是一个类似的想法 其中有四层 当鼠标移动时 它们以略有不同的速率移动 我找到了一个很好的例子 它提供了与我想要的类似的东西 http jsfiddle net X7UwG 2 h
  • 为什么 AngularJS 在使用 ng-bind-html 时会去掉 data- 属性?

    我正在使用 contentEditable div 来使用户能够格式化他们的文章 我对html内容做了一些处理并保留它 我在用ng bind html当观众想要阅读文章时呈现结果 我不想使用 sce trustAsHtml因为我仍然希望 A
  • 如何使用鼠标单击选择多个项目?

    This is the default jQueryUI display as a Grid Layouts demo here http jqueryui com demos selectable display grid I can s
  • Z-Index 不起作用 - 替代技术或修复

    我已为固定位置的菜单栏分配了高 z index 但它仍然出现在我网站上其他元素的下方 是否有我可以使用的替代技术或者我编写的代码有问题 我的有问题的网站是here http ninjawarrior info new 注意 向下滚动后需要向
  • PHP 中的 XPath 删除 HTML 标签

    我在 PHP 中使用 XPath 来检索 HTML 文档的一部分 假设我的 HTML 文档如下所示 div a href some link address com Hello a p Some text here p div div p
  • CSS3变换:翻译最大值?

    我创建了一个实验无限滚动 Pi 的前十亿位 https daniellamb com experiments infinite pi 寻找 创建一个具有大量数据集的高性能滚动解决方案 我开始测试iScroll http iscrolljs
  • XAMPP 中的根路径

    我遇到这个问题已经有一段时间了 并且广泛寻找答案但没有成功 img src images test jpg 从 根路径 在我的例子中是在 LAMP 中的生产中 获取图像 htdocs images test jpg 无论是从 htdocs
  • 如何选择带有空格的类

    我如何选择一个类class boolean optional 我已经尝试过这个 boolean optional CSS boolean optional CSS 正如 Zepplock 所说 这实际上是一个属性中的两个类 boolean
  • 为什么音频自动播放在 Google Chrome 中不起作用?

    我正在尝试在页面刚刚打开时自动播放音频文件 我的浏览器是谷歌浏览器更新到最新版本 这是代码
  • 自动换行在 IE 中不起作用

    自动换行如下 The Breakage of Too Long Words div break word width 690px word wrap break word 确实包装了下表的单词 但它也使表格保持拉伸 我在表的这一部分中使用了
  • 如何切换整个页面的深色主题?

    我已经成功地在 html 和 Flask 中按下复选框时切换深色主题和浅色主题 但是我怎样才能让深色主题覆盖整个页面 而不仅仅是一些 div 元素呢 边距仍然是浅色主题 CSS代码如下 container display flow widt
  • Twitter bootstrap 3 RC2 - IE8 中的导航不起作用

    我正在使用 Twitter Bootstrap 3 RC2 在页面顶部创建一个导航栏 除了在 IE8 中之外 该导航栏工作正常 在 IE8 中 就像浏览器变小一样 因此菜单会折叠以供移动视图使用 但这种情况并非如此 现在我知道 TB3 仍在
  • 不用AJAX,前台同步拖放文件上传?

    我有一个定期的网站
  • 当页面上没有嵌入特定文件时,如何使用R从网页下载文件

    当没有使用 R 中的 download file 上传的特定文件时 是否有任何可能的解决方案从任何网站提取文件 我有这个网址 https www fangraphs com leaders aspx pos all stats bat lg

随机推荐

  • 第二章——开始学习C++

    进入C 首先介绍一个显示消息的简单C 程序 不同于以往的 Hello world include
  • Matter 仓库介绍

    1 connectedhomeip spechttps github com CHIP Specifications connectedhomeip spec 此仓库为Matter规范技术文档 specifications 采用 Ascii
  • cmd如何返回上一级目录,如何进入其他文件目录

    当我们打开cmd或者composer运行命令时都会进入一个默认文件目录 那么cmd该如何返回上一级目录 和如何进入其他文件目录运行命令呢 具体方法如下图所示 1 在默认的命令后加 cd 即可返回上一级目录 2 cmd进入其他文件目录 2 1
  • 基于.net平台常用的框架整理

    分布式缓存框架 Microsoft Velocity 微软自家分布式缓存服务框架 Memcahed 一套分布式的高速缓存系统 目前被许多网站使用以提升网站的访问速度 Redis 是一个高性能的KV数据库 它的出现很大程度补偿了Memcach
  • 若依后台管理系统学习

    前端系统是指运行在浏览器或者移动设备上的用户界面层 它负责与用户交互 展示数据 调用后端服务等 前端系统的架构设计需要考虑以下几个方面 前端系统在整个系统中的位置和关系 你需要明确前端系统与后端服务 数据库 第三方接口等的架构上的关系 业务
  • requests模块----这是一个强硬的手段,有多强呢?看看你就知道了

    目录 requests的作 发送简单的get请求 发送带header的请求 发送POST请求 cookies参数的使 cookie和session区别 使 代理 设置请求超时时间 请求SSL证书 开始了 requests模块简单介绍 1 r
  • Java8基础之Serializable接口

    Serializable接口介绍 Serializable 是 java io 包中定义的 用于实现 Java 类的序列化操作而提供的一个语义级别的接口 Serializable 序列化接口没有任何方法或者字段 只是用于标识可序列化的语义
  • shift算法的实现

    ok 接上文 咱们一个一个的来编写main函数中所涉及到所有函数 这也是本文的关键部分 cpp view plain copy print 下采样原来的图像 返回缩小2倍尺寸的图像 CvMat halfSizeImage CvMat im
  • ***总结:在linux下连接redis并进行命令行操作(设置redis密码)

    root iZ254lfyd6nZ cd root iZ254lfyd6nZ ls bin boot dev etc home lib lib64 lost found media mnt opt proc root sbin selinu
  • 通信算法之184: 物理层DPD/CFR/LNA/PA

  • 机器人教育在STEM课程中的设计研究

    在美国 科学 技术 工程和数学 STEM 教育被视为确保国家成功未来的重要一步 基于现实世界中的问题开发的STEM课程 可以使课程更贴近学生和教师 对于更优质的STEM教育的迫切要求主要基于以下因素的考虑 许多职业现在需要一支能够参与STE
  • 啊哈C——学习6.4陶陶摘苹果

    2015年2月5日22 02 03 1 陶陶家的院子里有一颗苹果树 每到秋天树上就会结出10个苹果 苹果成熟的时候 陶陶就会跑去摘苹果 陶陶有个30cm高的板凳 当她不能直接用手摘到苹果是 就会踩到板凳上再试试 现在一直10个苹果到地面的高
  • 华为OD机试 -百钱买百鸡问题(C++ & Java & JS & Python)

    描述 公元五世纪 我国古代数学家张丘建在 算经 一书中提出了 百鸡问题 鸡翁一值钱五 鸡母一值钱三 鸡雏三值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 现要求你打印出所有花一百元买一百只鸡的方式 输入描述 输入任何一个整数 即可运行程序 输
  • 树莓派4b配置OpenWrt联网

    文章目录 前言 一 下载固件 二 配置wan口 三 简单介绍 1 修改无线名称 设置密码 2 下载软件包 总结 前言 树莓派4b内置wifi模块 加一个千兆网口 好像有一种办法 通过无线wifi链接其他wifi通网 然后把这个网口作为lan
  • 登录鉴权

    注册登录鉴权 1 1 用户注册 前台需要给我们传递用户名 密码 手机号 手机验证码 验证用户前台传过来的数据是否符合规范 我们使用的Hibernate Validator框架实现的服务端表单校验 短信验证码这块 我们采用的阿里的大于短信接口
  • python 处理数据小工具_Python数据处理工具使用方法整理

    从csv文件创建DataFrame类型的数据结构 gt gt gt df pd read csv xxx csv DataFrame类型的形状和长度 gt gt gt df shape 38 39 gt gt gt len df 38 各列
  • mac的Vscode 中 Remote-SSH 连接不上服务器,但是在终端中使用SSH可以连接

    Vscode 中 Remote SSH 连接不上服务器 但是在终端中使用SSH可以连接 我试了各种办法 最后准备删除配置文件看看 结果发现没有权限 怀疑是我用了conda管理环境 可能造成base环境权限变了 总之 我在vscode的终端中
  • 解决android每次请求,后台sessionId都会变换(springboot配置web.xml)

    问题 后台生成验证码以后 存放到session缓存中 将验证码发送给指定手机 当安卓手机输入验证码调用注册接口时候 后台接口从session中无法取出放入的验证码 原因 android每次请求 后台sessionId都会变换 解决方法 1
  • Word论文书写--页眉线设置

    开始 gt 段落 gt 边框和底纹 基本设置如下 结果
  • 用Flex布局模型开发网页

    目录 一 为什么要用Flex布局 对比浮动有什么优点 二 Flex布局组成 三 如何使用Flex布局 1 基本方法 2 主轴对齐方式 3 侧轴对齐 4 改变主轴方向 5 弹性盒子换行 四 弹性盒子多场景运用 1 圣杯布局 2 如何让父盒子里