当前位置: 首页 > news >正文

css3伸缩盒模型第一章(主轴以及伸缩盒模型)

css3伸缩盒模型第一章(主轴)

一、伸缩盒模型简介

  • 2009 年, W3C 提出了一种新的盒子模型 —— Flexible Box (伸缩盒模型,又称:弹性盒
    子)。
  • 它可以轻松的控制:元素分布方式、元素对齐方式、元素视觉顺序 …
  • 截止目前,除了在部分 IE 浏览器不支持,其他浏览器均已全部支持。
  • 伸缩盒模型的出现,逐渐演变出了一套新的布局方案 —— flex 布局。
  1. 传统布局是指:基于传统盒状模型,主要靠: display 属性 + position 属性 + float
    属性。
  2. flex 布局目前在移动端应用比较广泛,因为传统布局不能很好的呈现在移动设备上。

二、伸缩容器/伸缩项目

我们将父元素叫做伸缩容器,子元素称为项目,容器里面的元素都称为一个一个的项目

1. 伸缩容器

开启了 flex 的元素,就是:伸缩容器

  1. 给元素设置: display:flex 或 display:inline-flex ,该元素就变为了伸缩容
    器。
  2. display:inline-flex 很少使用,因为可以给多个伸缩容器的父容器,也设置为伸缩
    容器。
  3. 一个元素可以同时是:伸缩容器、伸缩项目。

2. 伸缩项目

伸缩容器所有子元素自动成为了:伸缩项目。

  1. 仅伸缩容器的子元素成为了伸缩项目,孙子元素、重孙子元素等后代,不是伸缩项
    目。
  2. 无论原来是哪种元素(块、行内块、行内),一旦成为了伸缩项目,全都会“块状化”。

效果

在这里插入图片描述

代码

<title>01.伸缩项目</title><style>/* body {display: flex;} */.outer {width: 1000px;height: 600px;background-color: gray;/* 开启弹性布局,该布局开启后,只针对自己的子元素有效,孙子元素没有不起作用 */display: flex;}.inner {width: 200px;height: 200px;background-color: pink;border: 1px solid black;box-sizing: content-box;}.inner3 {display: flex;}</style>
</head>
<body><div class="outer"><div class="inner">1</div><div class="inner">2</div><div class="inner inner3"><div>a</div><div>b</div><div>c</div></div></div><!-- <div class="outer"><div class="inner">1</div><div class="inner">2</div><div class="inner">3</div></div> -->
</body>

三、主轴方向

伸缩项目沿着主轴排列,主轴默认是水平的,默认方向是:从左到右(左边是起点,右边
是终点)。

属性: flex-direction

基本代码

.outer {width: 1000px;height: 600px;/* border: 1px solid black; */background-color: #888;margin: 0 auto;/* 开启弹性布局 */display: flex;}      
.inner {width: 200px;height: 200px;background-color: paleturquoise;box-sizing: border-box;border: 1px solid pink;}
<body><div class="outer"><div class="inner">1</div><div class="inner">2</div><div class="inner">3</div></div>
</body>

row

默认方式, 主轴的方向从左到右

/* 方式1 row 从左到右 默认方式*/

​ flex-direction: row;

在这里插入图片描述

row-reverse

跟上面相反,主轴的方向从右到左边

/* 方式2 从右到左边 */

flex-direction: row-reverse;

在这里插入图片描述

column

主轴的方向,从上到下 垂直

flex-direction: column;

在这里插入图片描述

column-reverse

从下到上 垂直

/* 方式4 从下到上 垂直 */

flex-direction: column-reverse;

在这里插入图片描述

主轴换行方式

我们设置了伸缩项目后,里面的项目就好挤到一行,我们需要进行一个换行操作,我们需要做的是将内容撑多,放多个盒子,这样才好观察

属性:flex-wrap

基本代码

   .outer {width: 1000px;height: 600px;/* border: 1px solid black; */background-color: #888;margin: 0 auto;/* 开启弹性布局 */display: flex;/* 主轴方向  从左到右  默认方式 */flex-direction: row;}.inner {width: 200px;height: 200px;background-color: greenyellow;border: 1px solid black;box-sizing: border-box;}
<body><div class="outer"><div class="inner">1</div><div class="inner">2</div><div class="inner">3</div><div class="inner">4</div><div class="inner">5</div><div class="inner">6</div><div class="inner">7</div><div class="inner">8</div></div>
</body>

nowrap

方式1 不进行包装,默认方式全部挤到一起,尽可能在一行里面装下,其他元素缩小各自的宽度

在这里插入图片描述

wrap

方式2 换行 不过我们可能觉得不可思议,没有挨到一起,挨到一起是纵轴的设置,不是主轴

在这里插入图片描述

wrap-reverse

方式3 反方向 主轴一直没变 左右 只不过是从下边开始了 小的永远在左边

在这里插入图片描述

四、flex-flow

flex-flow 是一个复合属性,复合了 flex-direction 和 flex-wrap 两个属性。 值没有顺序要
求。

  • flex-flow: row nowrap;

方式1

flex-flow: row wrap; 水平 换行

在这里插入图片描述

方式2

水平 换行反转

在这里插入图片描述

方式3

/* 方式3 垂直 包装 */

  • flex-flow: column wrap;

在这里插入图片描述

方式4

  • ** flex-flow: column-reverse wrap** 垂直反转 包装

在这里插入图片描述

方式5

**flex-flow: column-reverse wrap-reverse; ** 垂直反转 包装反转

在这里插入图片描述

五、主轴对齐方式

属性名: justify-content

如果我们有很多元素的话,我们可以设置元素的排列方式,如均分,两边对齐。。。。

基本代码

<title>05.主轴对齐方式</title><style>.outer {width: 1000px;height: 600px;/* border: 1px solid black; */background-color: #888;margin: 0 auto;/* 开启弹性布局 */display: flex;/* flex-flow复合属性   水平 换行 */flex-flow: row wrap;/* 方式1 主轴对齐方式,从左开始 */justify-content: flex-start;/* 方式2 从右往左 千万不要把该属性通 wrap-resrver 说成一样的,看数字排列的属性 *//* justify-content: flex-end; *//* 方式3 居中对齐*//* justify-content: center; *//* 方式4   两边对齐 *//* justify-content: space-between; *//* 方式4  主轴均匀对齐  项目与项目间空隙是边上的2倍*//* justify-content: space-around; *//* 方式5  均匀分布 ,留的空隙都是一样的 *//* justify-content: space-evenly; */}.inner {width: 200px;height: 200px;background-color: seashell;border: 1px solid black;box-sizing: border-box;}</style>
</head>
<body><div class="outer"><div class="inner">1</div><div class="inner">2</div><div class="inner">3</div></div>
</body>

flex-start

主轴对齐方式,从左开始,默认方式

  • justify-content: flex-start;

在这里插入图片描述

flex-end

方式2 从右往左 千万不要把该属性通 wrap-resrver 说成一样的,看数字排列的属性

  • justify-content: flex-end;

在这里插入图片描述

center

居中对齐

  • justify-content: center;

在这里插入图片描述

space-between

两边对齐,不留空隙,中间其他元素空隙均分剩余的空间

在这里插入图片描述

space-around

主轴均匀对齐 项目与项目间空隙是边上的2倍

  • ** justify-content: space-around;**

在这里插入图片描述

space-evenly

均匀分布 ,留的空隙都是一样的,这是新出来的特性,比较新

  • justify-content: space-evenly

在这里插入图片描述

相关文章:

  • 单片机-89C51部分:9、串行口通讯
  • Gitea windows服务注册,服务启动、停止、重启脚本
  • MySQL慢查询日志分析方法
  • BLE技术,如何高效赋能IoT短距无线通信?
  • 应用安全系列之四十七:NoSQL注入
  • 14.外观模式:思考与解读
  • IoTDB数据库建模与资源优化指南
  • 从拒绝采样到强化学习,大语言模型推理极简新路径!
  • Tailwind CSS 实战:基于 Kooboo 构建企业官网页面(三)
  • Webshell管理工具的流量特征
  • Selenium 与 Playwright:浏览器自动化工具的深度对比
  • python jupyter notebook
  • 麒麟OS系统的Python程序和应用部署
  • 给 BBRv2/3 火上浇油的 drain-to-target
  • 使用DDR4控制器实现多通道数据读写(十)
  • Thinkphp开发自适应职业学生证书查询系统职业资格等级会员证书管理网站
  • 【PyTorch动态计算图原理精讲】从入门到灵活应用
  • react-native-vector-icons打包报错并且提示:copyReactNativeVectorIconFonts相关信息
  • 20_大模型微调和训练之-基于LLamaFactory+LoRA微调LLama3后格式合并
  • 详解大语言模型生态系统概念:lama,llama.cpp,HuggingFace 模型 ,GGUF,MLX,lm-studio,ollama这都是什么?
  • 十四届全国人大常委会第十五次会议在京闭幕
  • 上海国际咖啡文化节开幕,北外滩集结了超350个展位
  • 解密62个“千亿县”:强者恒强,新兴产业助新晋县崛起
  • 人社部:将制定提前领取个人养老金相关办法
  • 人社部:将会同更多部门分行业、分领域制定专项培训计划
  • 准85后青海海北州副州长、州公安局局长李贤荣赴山东临沂挂职