flex 常见的布局方式

Flexbox 是一种用于 CSS 布局的强大工具,可以帮助你轻松地创建灵活的布局。以下是一些常见的 flexbox 用法和属性:

1. 基本用法

HTML 结构
 

html

复制代码

<div class="container"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> </div>

CSS 样式
 

css

复制代码

.container { display: flex; /* 设置主轴方向,默认为 row(横向) */ flex-direction: row; /* 设置子元素在主轴上的对齐方式 */ justify-content: flex-start; /* 设置子元素在交叉轴上的对齐方式 */ align-items: stretch; } .item { flex: 1; /* 子元素平分容器的剩余空间 */ }

2. 主轴方向 (flex-direction)

水平排列 (默认)
 

css

复制代码

.container { display: flex; flex-direction: row; /* 横向排列 */ }

垂直排列
 

css

复制代码

.container { display: flex; flex-direction: column; /* 纵向排列 */ }

3. 主轴对齐方式 (justify-content)

左对齐 (默认)
 

css

复制代码

.container { display: flex; justify-content: flex-start; }

右对齐
 

css

复制代码

.container { display: flex; justify-content: flex-end; }

居中对齐
 

css

复制代码

.container { display: flex; justify-content: center; }

等间距对齐
 

css

复制代码

.container { display: flex; justify-content: space-between; /* 两端对齐,元素之间的间距相等 */ }

平均分布对齐
 

css

复制代码

.container { display: flex; justify-content: space-around; /* 每个元素两侧的间距相等 */ }

4. 交叉轴对齐方式 (align-items)

顶部对齐
 

css

复制代码

.container { display: flex; align-items: flex-start; }

底部对齐
 

css

复制代码

.container { display: flex; align-items: flex-end; }

居中对齐
 

css

复制代码

.container { display: flex; align-items: center; }

拉伸对齐 (默认)
 

css

复制代码

.container { display: flex; align-items: stretch; }

5. 弹性子元素 (flex)

等分剩余空间
 

css

复制代码

.item { flex: 1; }

不同的弹性比例
 

css

复制代码

.item1 { flex: 1; /* 占剩余空间的 1 份 */ } .item2 { flex: 2; /* 占剩余空间的 2 份 */ }

6. 多行布局 (flex-wrap)

不换行 (默认)
 

css

复制代码

.container { display: flex; flex-wrap: nowrap; }

自动换行
 

css

复制代码

.container { display: flex; flex-wrap: wrap; }

逆序换行
 

css

复制代码

.container { display: flex; flex-wrap: wrap-reverse; }

示例:创建一个弹性布局

HTML 结构
 

html

复制代码

<div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> <div class="item">Item 5</div> </div>

CSS 样式
 

css

复制代码

.container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; height: 200px; /* 容器的高度 */ border: 1px solid #000; } .item { flex: 1 1 100px; /* 设置弹性比例和最小宽度 */ margin: 10px; padding: 20px; background-color: lightblue; text-align: center; }

通过使用 flexbox,你可以创建复杂且响应式的布局,而不需要浮动或定位技巧。以上是 flexbox 的一些基本用法和示例,你可以根据需求进一步调整和组合这些属性。

下面是一个包含各种布局的 flexbox demo,它展示了如何使用 flexbox 创建不同的布局模式。这个 demo 包括了水平排列、垂直排列、居中对齐、等间距对齐和自动换行布局。

HTML 结构

 

html

复制代码

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flexbox Demo</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>Flexbox Layout Demo</h1> <section> <h2>Horizontal Layout</h2> <div class="container horizontal"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </section> <section> <h2>Vertical Layout</h2> <div class="container vertical"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </section> <section> <h2>Centered Layout</h2> <div class="container centered"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </section> <section> <h2>Space Between Layout</h2> <div class="container space-between"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </section> <section> <h2>Wrapped Layout</h2> <div class="container wrapped"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> <div class="item">Item 5</div> <div class="item">Item 6</div> </div> </section> </body> </html>

CSS 样式

 

css

复制代码

/* styles.css */ body { font-family: Arial, sans-serif; margin: 0; padding: 20px; background-color: #f4f4f4; } h1, h2 { text-align: center; } .container { border: 1px solid #ccc; margin: 20px auto; padding: 10px; display: flex; gap: 10px; background-color: #fff; } .item { background-color: lightblue; padding: 20px; text-align: center; border: 1px solid #ddd; flex: 1; } /* Horizontal Layout */ .horizontal { flex-direction: row; } /* Vertical Layout */ .vertical { flex-direction: column; } /* Centered Layout */ .centered { justify-content: center; align-items: center; height: 150px; } /* Space Between Layout */ .space-between { justify-content: space-between; } /* Wrapped Layout */ .wrapped { flex-wrap: wrap; height: auto; }

解释

  1. Horizontal Layout:

    • 使用 flex-direction: row 来创建水平排列的布局。
  2. Vertical Layout:

    • 使用 flex-direction: column 来创建垂直排列的布局。
  3. Centered Layout:

    • 使用 justify-content: centeralign-items: center 来创建居中对齐的布局。
  4. Space Between Layout:

    • 使用 justify-content: space-between 来创建等间距对齐的布局。
  5. Wrapped Layout:

    • 使用 flex-wrap: wrap 来创建自动换行的布局。

将以上的 HTML 和 CSS 代码放在你的项目文件中,打开 HTML 文件即可查看不同布局的效果。你可以根据需要调整和扩展这些布局。

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

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

相关文章

安装appium自动化测试环境,我自己的版本信息

教程来自&#xff1a;Appium原理与安装 - 白月黑羽 我的软件的版本&#xff1a; 安装是选择为自己安装而不是选all user pip install appium-python-client命令在项目根目录下安装appium-python-client sdk的话最简单的安装方式就是去Android官网下一个android studio然后在…

在美国小众电商平台通过AI+马克杯月入15万,AI副业赚钱思路大揭秘

AI时代&#xff0c;怎么在小众赛道借助AI做好跨境电商生意&#xff1f;今天跟大家分享POD(Print On Demand)定制赛道的案例。在美国小众手工艺电商平台Etsy通过AI马克杯月入15万&#xff0c;这篇文章会跟大家分享具体的副业案例&#xff0c;商业模式&#xff0c;AIPOD模式具体流…

学会这4个Word打印技巧,让你工作效率翻倍!

作为打工人&#xff0c;我们经常需要打印各种Word文档&#xff0c;以下分享的6个Word打印技巧&#xff0c;如果你不知道就太可惜了&#xff0c;一起来看看吧&#xff01; 技巧1&#xff1a;打印当前页 如果Word文档有很多页&#xff0c;但只需要打印其中的一页&#xff0c;可以…

matplotlib---气泡图

气泡图简介&#xff1a; 气泡图&#xff08;Bubble Chart&#xff09;是一种数据可视化图形&#xff0c;主要用于展示多个数据点之间的关系。 气泡图通过气泡的大小&#xff0c;位置和颜色可以展示数据之间的关系。在气泡图中&#xff0c;横轴和纵轴通常表示数据的两个维度&a…

山东省泰安市泰山夜市文化惠民活动精彩纷呈

5月24日&#xff0c;山东省泰安市泰山区岱庙街道办事处携手徂徕镇人民政府联袂打造的特色产品爱心助农惠民购活动在泰山夜市圆满举行。此次活动通过“等岱你徕”惠民消费专场、网红主播直播带货、夜场活动等一系列丰富多样的形式&#xff0c;通过创新的形式和内容&#xff0c;推…

【总结】MySQL 更新数据超时失败-死锁排查解决

MySQL 更新数据超时失败 问题现象 今天操作线上数据时&#xff0c;想要更新一条数据&#xff0c;结果页面上转了很久&#xff0c;最终http请求超时报错。 查看了后端的应用日志&#xff0c;发现如下信息&#xff1a; [2024-05-27 10:29:29.294] ERROR c.t.h.e.ExceptionHan…

【知识蒸馏】多任务模型 feature-based 知识蒸馏实战

一、实现流程 &#xff08;1&#xff09;定义学生和教师模型 &#xff08;2&#xff09;定义特征蒸馏损失 Mimic LossCWD LossMGD LossFeature Loss &#xff08;3&#xff09;使用hook获取需要蒸馏的特征层 定义回调函数使用hook函数获取需要蒸馏的挺特征层 &#xff08;…

太狠了,凌晨5点面试。。

(关注数据结构和算法&#xff0c;了解更多新知识) 网上看到一网友发文说收到面试邀请&#xff0c;面试时间竟然是早晨5点&#xff0c;这是要猝死的节奏。有的网友说应该是下午 5 点&#xff0c;如果是下午 5 点直接写下午 5 点就行了&#xff0c;或者写 17 点也行&#xff0c;直…

[企业级高效系统工具]短视频矩阵系统 ,一站式管理新媒体账号,短视频精准获客,一键管理上千个短视频账。

一、做项目为什么要搭建一款属于自己的系统&#xff1f; 在讲这个短视频矩阵系统前&#xff0c;我们聊聊做项目的时候为什么要搭建一款属于自己的系统。 1.拥有自己的系统&#xff0c;就意味着你可以随时随地进行源码部署和更新。你的项目就能紧跟时代潮流&#xff0c;始终保持…

具身人工智能:人工智能机器人如何感知世界

什么是具身人工智能 虽然近年来机器人在智能城市、工厂和家庭中大量出现,但我们大部分时间都在与由传统手工算法控制的机器人互动。这些机器人的目标很狭隘,很少从周围环境中学习。相比之下,能够与物理环境互动并从中学习的人工智能 (AI) 代理(机器人、虚拟助手或其他智能系…

强化学习——学习笔记

一、什么是强化学习&#xff1f; 强化学习 (Reinforcement Learning, RL) 是一种通过与环境交互来学习决策策略的机器学习方法。它的核心思想是让智能体 (Agent) 在执行动作 (Action)、观察环境 (Environment) 反馈的状态 (State) 和奖励 (Reward) 的过程中&#xff0c;学习到…

【每日随笔】小人畏威不怀德 , 君子畏德不畏威 ( 先礼后兵 )

文章目录 一、小人畏威不怀德1、小人畏威不怀德2、小人场景一3、小人场景二 二、君子畏德不畏威三、先礼后兵 一、小人畏威不怀德 1、小人畏威不怀德 如果 友善 的对待 小人 , 这种人 认知低 且 素质差 , 小人 会将你的 " 友善 " 理解为 " 屈服 " , 他会认…

单片机方案开发个性定制

酷得智能是玩具企业合作方案商&#xff0c;致力于为玩具企业提供一站式的智能化解决方案。我们拥有丰富的行业经验和技术实力&#xff0c;能够根据客户的需求和市场趋势&#xff0c;为其量身定制最适合的智能玩具产品和解决方案。 主营业务&#xff1a; 东莞市酷得智能科技有限…

Sping源码(九)—— Bean的初始化(非懒加载)— ConversionService

序言 经过前面一系列的加载、解析等准备工作&#xff0c;此刻refresh方法的执行已经来到了尾声&#xff0c;接下来我们用几篇文章着重的介绍一下Bean的初始化 代码 着重看refresh()主流程中的finishBeanFactoryInitialization()方法。 finishBeanFactoryInitialization 方法…

JAVA开发 利用代码生成奖状

通过java实现用模板生成奖状 1、图片模板2、实现代码3、生成模板 1、图片模板 2、实现代码 import javax.imageio.ImageIO; import java.awt.*; import java.awt.font.TextAttribute; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;…

CompositeDisposable作用

CompositeDisposable 是一个在 RxJava 中常用的类&#xff0c;它用于管理多个 Disposable 对象。Disposable 是 RxJava 中用于管理订阅&#xff08;subscription&#xff09;的接口&#xff0c;它允许我们取消订阅以避免内存泄漏和不必要的资源消耗。 CompositeDisposable 的主…

三坐标测量机在汽车零部件质量控制中的应用

高质量的零部件能够确保汽车的性能达到设计标准&#xff0c;包括动力性能、燃油效率、操控稳定性等&#xff0c;从而提供更好的驾驶体验&#xff0c;建立消费者对汽车品牌的信任&#xff1b;也推动了汽车行业的技术创新&#xff0c;制造商不断研发新材料、新工艺&#xff0c;以…

Java 登录错误次数限制,用户禁登1小时

手机号验证码登录&#xff0c;验证码输入错误次数超5次封禁 Overridepublic boolean checkCaptcha(String phoneNum, String captcha) {String codeNum (String) redisTemplate.opsForValue().get(UserCacheNames.USER_CAPTCHA phoneNum);if (codeNum null) {throw new Wan…

怎么图片转excel表格免费?介绍三个方法

怎么图片转excel表格免费&#xff1f;在日常工作中&#xff0c;我们经常需要将图片中的表格数据转化为可编辑的Excel格式。幸运的是&#xff0c;市面上有多款软件支持这一功能&#xff0c;并且部分软件还提供免费使用的选项。本文将为您详细介绍几款可以免费将图片转换为Excel表…

Java 异步编程——Java内置线程调度器(Executor 框架)

文章目录 Java多线程的两级调度模型Executor 框架Executor 框架的组成概念Executor 框架中任务执行的两个阶段&#xff1a;任务提交和任务执行 在 Java1.5 以前&#xff0c;开发者必须手动实现自己的线程池&#xff1b;从 Java1.5 开始&#xff0c;Java 内部提供了线程池。 在J…