欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【CSS3】04-标准流 + 浮动 + flex布局

【CSS3】04-标准流 + 浮动 + flex布局

2025/4/2 2:40:27 来源:https://blog.csdn.net/2301_76662826/article/details/146708024  浏览:    关键词:【CSS3】04-标准流 + 浮动 + flex布局

本文介绍浮动与flex布局。

目录

1. 标准流

2. 浮动

2.1 基本使用

特点

脱标

2.2 清除浮动

2.2.1 额外标签法

2.2.2 单伪元素法

2.2.3 双伪元素法(推荐)

2.2.4 overflow(最简单)

3. flex布局

3.1 组成

3.2 主轴与侧轴对齐方式

3.2.1 主轴

3.2.2 侧轴

3.3 修改主轴方向

3.4 弹性伸缩比

3.5 弹性换行与行对齐

3.5.1 弹性盒子换行

3.5.2 行对齐方式


1. 标准流

也叫文档流,指的是标签在页面中默认的排布规则

例如:块元素独占一行,行内元素可以一行显示多个


2. 浮动

让块级元素水平排列

2.1 基本使用

属性名:float

属性值:left  左对齐;right  右对齐

两个标签都加上 左浮动:都靠左

第二个改为右浮动:一左一右

特点

顶对齐,具备行内块的显示模式


脱标

给标签加上浮动,本身属于让其脱离标准流的控制

如果一个有浮动,另一个没有浮动,效果如下:

就会出现上面的叠加效果,因为浮动后的,不是标准流了,所以浏览器不会认为它在占用空间,下面没有加浮动的标签顺其自然的上移和one标签重叠。

所以最好两个都要浮动。


2.2 清除浮动

浮动元素会脱标,如果浮动的父级没有高度,子级无法撑开父级高度(可能导致页面布局错乱)

解决方法:清除浮动(清除浮动带来的影响)

先看正常的:

现在注释掉top的高度

因为 top.div 里的两个盒子是浮动的,属于脱标,浏览器会认为其不存在,所以出现上面的情况。


2.2.1 额外标签法

在父元素内容的最后添加一个块级元素,设置CSS属性:clear:both


2.2.2 单伪元素法

在父元素内容的最后添加一个块级元素

可以直接使用如下代码:

.clearfix::after {content: "";clear: both;display: block;
}


2.2.3 双伪元素法(推荐)

        /* 双伪元素 *//* before 解决外边距塌陷问题 */.clearfix::before,.clearfix::after {content: "";display: block;}.clearfix::after {clear: both;}</style>
</head>
<body><div class="top clearfix">      <div class="left"></div><div class="right"></div></div><div class="bottom"></div>
</body>


2.2.4 overflow(最简单)

父元素添加CSS属性 overflow:hidden


3. flex布局

flex布局也叫弹性布局,是浏览器提倡的布局类型,非常适合结构化布局,提供了强大的空间分布和对齐能力。

flex布局不会产生浮动布局中的脱标现象,更简单更灵活。

3.1 组成

设置方式:给父元素添加 display:flex,子元素可以自动挤压或拉伸

组成部分:

弹性容器、弹性盒子(是容器的子级)、主轴(默认水平)、侧轴/交叉轴(默认垂直)

沿着主轴方向排列,自动挤压。


3.2 主轴与侧轴对齐方式

3.2.1 主轴

justify-content

常用后四个

flex-end

center

space-between

空白间距均匀分配在弹性盒子之间

space-around

空白间距均匀分布在弹性盒子两侧,两个弹性盒子之间的距离是两侧的2倍

space-evenly

各个间距都相等


3.2.2 侧轴

align-items  当前弹性容器内所有弹性盒子的侧轴对齐方式

align-self  单独控制某个弹性盒子的侧轴对齐方式

前两个常用

align-items:

stretch

弹性盒子没有侧轴尺寸时才有效

center

flex-start

flex-end

align-self:

只举例一个,剩下都可以尝试

center


3.3 修改主轴方向

主轴默认水平方向,侧轴默认垂直方向

flex-direction

主轴方向变了,侧轴自动也会变化

只测试column


3.4 弹性伸缩比

控制弹性盒子的主轴方向的尺寸

属性名:flex

属性值:整数数字,表示占用父级剩余尺寸的份数

如果修改了主轴方向呢?

控制盒子的高


3.5 弹性换行与行对齐

3.5.1 弹性盒子换行

弹性盒子自动挤压或拉伸,默认情况下,所有弹性盒子都在一行显示

flex-wrap

属性值:

wrap   换行

nowrap   不换行(默认)


3.5.2 行对齐方式

行与行之间的对齐方式(默认垂直方向)

align-content

属性值:(和主轴对齐方式一样)

演示效果:

flex-start

flex-end

center

space-between

space-around

space-evenly

注意:

align-content对单行的没有效果

也就是如果不换行(没有wrap)就没有效果,都在一行


本文介绍浮动与flex布局,重点掌握flex布局。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词