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

【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布局。

相关文章:

  • 【大模型基础_毛玉仁】5.4 定位编辑法:ROME
  • 嵌入式图像采集与显示系统实战详解:基于V4L2与Framebuffer的实现
  • 单元测试中的测试替身(基于Java的示例)
  • 21 模板方法(Template Method)模式
  • Jmeter(性能指标、指标插件、测试问题、面试题、讲解稿)
  • Linux : System V 共享内存
  • 基于srpingboot智慧校园管理服务平台的设计与实现(源码+文档+部署讲解)
  • 基于SpringBoot的“小说阅读平台”的设计与实现(源码+数据库+文档+PPT)
  • 基于springboot+vue的校园数字化图书馆系统
  • 【RAGFlow】ubuntu22部署ragflow(v0.17.2)
  • Cursor 使用 APIkey 配置 Anthropic Claude BaseURL , gpt-4o,deepseek等大模型代理指南
  • 基于单片机的并联均流电源设计(论文+源码)
  • 《C语言:从诞生到成为编程基石的历史之旅》
  • c# 获取redis中所有的value
  • 快速入手-基于DRF跨域配置django-cors-headers(十三)
  • nodejs 文件相关
  • GRU原理
  • 1.1 轴承故障数据预处理与时频图提取
  • 踏过强化学习的每一步推导
  • C++基础算法(插入排序)
  • 广州门户网站建设方案/室内设计培训
  • 济宁专业做网站/打开网址资料网站
  • 企业网站改版新闻/站长之家官网登录入口
  • 一元云购网站建设教程/seo优化教程下载
  • 旅行网站建设毕业论文文档/推广普通话手抄报简单又好看内容
  • 怎样注册网站账号申请/公司官网模板