你不知道的flex布局 css3 flex 基础

简介: 你不知道的flex布局 css3 flex 基础
ie6混杂模式的盒模型:
css2 的boxwidth = width = border * 2 + padding *2
ie6 的boxWidth = width; contentWidth = width - border *2 - padding * 2
使用ie6混杂模型(怪异模型)  box-sizing: border-box
ie6的解决问题: 在定宽的盒子里面,放一个100%的input的框,因为input自带2px的border,会超出父级宽度
overflow: 在overflow-x 或者overflow-y 只要一个方向设置了一个值不是visible,另一个方向的值就会变成auto
resize: 可以改变水平或者垂直的框的大小, 一般与overflow 一起使用
flex布局: 弹性盒子  display: flex 都是设置在父级盒子里面
flex-direction :盒子的主轴方向(默认row),有 row(自左向右) column(自上向下) row-reverse(自右向左) column-reverse(自下向上)
flex-wrap: 盒子是否换行(默认no-wrap), 有wrap (换行) no-wrap(不换行) wrap-reverse(倒着换行)
justify-content: 基于主轴的对齐方式(默认 flex-start) 有flex-start (默认对齐) flex-end(向右对齐) center(居中) space-between(两边对齐,中间自适应) space-around(元素两边的空隙相等)
align-items:基于垂直轴(交叉轴)的对齐方式,主要对于单行进行处理 (默认 stretch) stretch(没有设置高度,自动撑开到父级的高度) flex-start(开始位置) flex-end(最后的位置) center(居中)  baseline(文字底线对齐)
align-content: 基于垂直的对齐方式,主要用于多行元素进行对齐 (默认 stretch) 有 stretch(没有设置高度,自动撑开到父级的高度) flex-start(其实方向连续对齐)  flex-end(末尾对齐,没有缝隙)  center(中间) space-bewteen(上下占领,中间平局分配) space-around(所有元素平均分配距离)
flex单行对齐方式: align-items: center, justify-content: center
flex多行对齐方式: align-content: center
flex 设置到子级的属性
order: 谁小谁在前面,默认值为(0) 一般填写负值
align-self: 子项设置自己的垂直排列方式, 高于父级设置的 有stretch(没有设置高度,自动撑开到父级的高度) flex-start(开始位置) flex-end(最后的位置) center(居中)  baseline(文字底线对齐)
注意; 优先级align-content > align-self > align-items,
// 弹性盒子的弹性: 子项中填写 flex: 1 1 auto 三个参数如下面三个, flex-grow flex-shrink flex-basis
flex-grow: 伸 默认(0) 当以一行还有剩余空间,按照子项设置的flex-grow的值的比列来瓜分剩余的空间
flex-shrink: 默认(1)缩 每个元素的宽度相等时候, 当一行空间不足时候,启动缩,按flex-shrink 里面的值的比列来缩 , 宽度不相同时候,压缩算法: 
1.先计算所有盒子的加权值(每个盒子的宽度 * 需要压缩的比列 的和)
2.求每个盒子需要压缩的值, (每个盒子的宽度 * 需要压缩的比列 / 加权值 ) * 需要压缩的大小 得出的就是需要压缩的大小
flex-basis:默认auto,使用width   用来取代width,
flex-shrink: 在压缩中不管有没有设置boder-sizing:boder-box,里面的宽度是内容区的真实宽度,padding 或者border是不能被压缩的
flex-basis 与 width 的关系与区别: 
1.不设置width,而设置flex-basis的话,代表元素的最小宽度值就是flex-basis里面设置的值
2.设置了width, flex-width两者都且width 的值大于 flex-basis的值 的话,flex-basis为撑开的最小宽度,width里面的值为可以撑开的最大上限
3.如果英文不换行,撑开容器不会参与压缩,使用word-break: wrap
inline-flex: 行级弹性盒子,不怎么使用
flex的应用:
1.居中方式: 父级设置display:flex ,水平居中:justify-content: center, align-items: center, 无论盒子怎么移动,都会居中
2. 可动态添加的导航栏,
3.等分布局 写几个div, 父级flex布局, 子项felx-grow: 1
4.流式布局 align-content: flex-start
5.圣杯布局 
相关文章
|
2月前
|
容器
Bootstrap5 Flex(弹性)布局4
排序:.order 类可设置弹性子元素的排序,范围从 .order-1 至 .order-12,数字越小优先级越高。外边距:.ms-auto 和 .me-auto 分别用于设置子元素的右侧和左侧外边距为 auto。包裹:.flex-nowrap(默认)、.flex-wrap 和 .flex-wrap-reverse 用于控制弹性容器中的子元素是否换行及换行方向。
|
1月前
|
容器
Bootstrap5 Flex(弹性)布局6
使用 `.align-self-*` 类可控制指定子元素的对齐方式,包括 `.align-self-start`, `.align-self-end`, `.align-self-center`, `.align-self-baseline`, 和 `.align-self-stretch`。示例代码展示了如何在一个弹性布局中应用这些类,以实现不同设备上的响应式设计。
Bootstrap5 Flex(弹性)布局5
使用 .align-content-* 控制多行子元素在垂直方向上的堆叠方式,如 .align-content-start、.align-content-center 等。对于单行子元素,使用 .align-items-* 控制对齐,例如 .align-items-start、.align-items-center 等。示例代码展示了不同对齐效果的应用。
Bootstrap5 Flex(弹性)布局2
介绍Flex布局的水平和垂直方向控制。`.flex-row`使子元素水平排列,默认左对齐;`.flex-row-reverse`则右对齐。`.flex-column`让子元素垂直排列;`.flex-column-reverse`则反向排列。示例展示了不同类的效果,通过改变类名实现布局调整。
Bootstrap5 Flex(弹性)布局3
`.justify-content-*` 类用于调整弹性子元素的对齐方式,支持 start、end、center、between、around 等值。`.flex-fill` 类使所有子元素等宽,而 `.flex-grow-1` 则让指定子元素占据剩余空间。这些类在布局设计中非常实用。
|
2月前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
2月前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
2月前
|
容器
HTML中使用Flex布局实现双行夹批效果
在HTML中,还可以用table元素来实现双行夹批效果,但比flex布局代码更复杂,效果也不见得更理想。
48 10
|
2月前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
128 10