了解CSS中的BFC以及用法

news2025/2/26 23:10:17

目录

一 常见的定位方案

1. 普通流(所有元素默认为普通流的定位)

2. 浮动

3. 绝对定位

二  BFC 

1. 定义

2. 触发条件

3. 作用

(1) 避免外边距重叠

​(2)清除浮动

(3) 阻止元素被浮动元素覆盖


一 常见的定位方案

        首先,先了解一下常见的定位方案。有三种:普通流(默认)、浮动、绝对定位。

1. 普通流(所有元素默认为普通流的定位)

2. 浮动

3. 绝对定位

二  BFC 

1. 定义

        BFC 即 Block Formatting Contexts (块级格式化上下文),属于上面提到的定位方案中的普通流。
        我们可以把BFC看成页面中的一块渲染区域。它有自己的渲染规则。简单来说,BFC可以看作元素的一种属性,当元素拥有了BFC这个属性的时候,这个元素就可以看作是隔离了的独立容器。容器里面的元素不会在布局上影响到外面的元素。

2. 触发条件

        如果元素种有以下任一属性,就将触发BFC。

3. 作用

(1) 避免外边距重叠

        外边距重叠现象:如下代码,希望的结果是,上下两个div的间距应该是200px,但是实际上只有100px。原因:块的上外边距margin-top 和下外边距 margin-bottom 会合并为单个边距,其大小为单个边距的最大值。如果这两个边距相等的话,则为其中一个

解决办法:

        将两个div放到不同的BFC中。那么这两个BFC中的内容将不会相互干扰。代码如下:

(2)清除浮动

        示例:以下定义两个div,呈父子关系,并为子元素设置float:left。理想情况是一个红色边框包裹一个蓝色方块。但是实际效果如下。原因是:子元素设置了浮动,脱离了文档流,所以就只剩下了2px的边框高度。

解决办法:

        给父容器添加overfloat:hidden 属性,触发父容器的BFC,那么父容器就会包含子容器,从而达到了清除浮动的作用。

(3) 阻止元素被浮动元素覆盖

        示例:如下两个div,其中一个设置了浮动,可以看到浮动的元素覆盖到了没有设置浮动的元素之上。原因:设置了浮动的元素脱离了文档流,就导致元素重叠。

解决办法:

        触发正常元素的BFC属性。在第二个元素中加上overfloat属性,这样两个元素就互不干扰。

备注:本文是看视频 带你用最简单的方式理解最全面的BFC 后的记录。

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

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

相关文章

【知识扫盲】DHCP Server扫盲与作用

DHCP Server在实际应用中非常广泛,它适用于各种规模的网络环境,从小型办公室到大型企业网络,都能发挥重要作用。以下是一些具体的使用场景,用通俗易懂的语言进行解释。 1. 办公室网络环境 在一家公司的办公室里,通常会…

麒麟KOS删除鼠标右键新建菜单里不需要的选项

原文链接:麒麟KOS删除鼠标右键新建菜单里不需要的选项 Hello,大家好啊!在日常使用麒麟KOS操作系统时,我们可能会发现鼠标右键新建菜单里包含了一些不常用或者不需要的选项。这不仅影响我们的使用效率,也让菜单显得杂乱…

基于MPC的自动驾驶泊车控制

基于MPC的自动驾驶泊车控制 H. Ye, H. Jiang, S. Ma, B. Tang, and L. Wahab, “Linear model predictive control of automatic parking path tracking with soft constraints,” International Journal of Advanced Robotic Systems, vol. 16, no. 3, p. 附赠自动驾驶学习资…

Qt之QSS样式表

QSS简介 QSS(Qt Style Sheet)样式表是一种用于描述图形用户界面(GUI)样式的语言。它允许开发者为应用程序的控件定义视觉外观,例如颜色、字体、尺寸和布局等。 QSS 样式表的主要目的是提供一种简洁而灵活的方式来美化…

NzN的数据结构--栈的实现

在前面我们已经学习了哪些线性数据结构呢?大家一起来回顾一下:C语言学过的数组,数据结构中的线性表和顺序表和链表。那我们今天再来介绍数据结构里的两个线性结构--栈和队列。 目录 一、栈的概念及结构 二、用数组实现栈 1. 栈的初始化和…

Linux内核中常用的C语言技巧

Linux内核采用的是GCC编译器,GCC编译器除了支持ANSI C,还支持GNU C。在Linux内核中,许多地方都使用了GNU C语言的扩展特性,如typeof、__attribute__、__aligned、__builtin_等,这些都是GNU C语言的特性。 typeof 下面…

Web 前端性能优化之七:数据存储与缓存技术

7、数据存储 在开发Web应用的过程中,会涉及一些数据的存储需求,常见的存储方式可能有: 保存登录态的Cookie; 使用浏览器本地存储进行保存的Local Storage和Session Storage; 客户端数据持久化存储方案涉及的Web SQ…

Redis Cluster集群模式

目录 一、理论 1.1 概念 1.2 集群的作用 1.3 redis集群的数据分片 1.4 Redis集群的主从复制模型 二、实践 2.1 Redis集群模式的搭建 2.1.1 cluster集群前期工作 2.1.2 开启群集功能 2.1.3 启动redis节点 2.1.4 启动集群 2.2 测试集群 总结 一、理论 1.1 概念 集群&a…

pyside6的QSpinBox自定义特性初步研究(二)

当前的需求是,蓝色背景的画面,需要一个相对应色系的QSpinBox部件。已有的部件风格是这样的,需要新的部件与之般配。 首先新建一个QDoubleSpinBox,并定义其背景色和边框: QDoubleSpinBox { color: white; border:1px…

光学雨量计红外雨量传感器应用于小型气象站

光学雨量计红外雨量传感器应用于小型气象站 随着气候变化对人类生活和农业生产的影响越来越大,气象观测设备的需求也逐渐增加。其中一种常见的气象观测设备是雨量计,用于监测降水量。在小型气象站中,光学雨量计红外雨量传感器被广泛应用。 …

数据库知识点汇总(最全!,2024年最新大佬分享开发经验

十九、删除数据 DELETE 语句 使用 DELETE 语句从表中删除数据。 DELETE FROM table [WHERE condition]; 删除数据 使用 WHERE 子句删除指定的记录 DELETE FROM departments WHERE department_name ‘Finance’; 如果省略 WHERE 子句,则表中的全部数据将被删除 DELE…

ai智能问答免费API接口

智能对话API接口,可以为网站或其他产品提供强大的智能交互功能,无需自行开发复杂的语义分析和自然语言处理算法。这使得开发者能够更专注于产品的核心功能和用户体验,加速产品上线速度并降低开发成本。 智能对话API接口的功能还包括对话内容…

CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

VS运行.netcore项目,一般情况下都是用localhost访问,怎么做到用IP地址访问,步骤详解

一、问题描述 通常情况下运行起来都是这样 运行后效果 怎么做到下面这样呢? 二、解决办法 vs把项目运行起来之后,在电脑的右下角有一个图标,右键它 点击其中一个 进入applicationhost.config文件

Golang | Leetcode Golang题解之第14题最长公共前缀

题目&#xff1a; 题解&#xff1a; func longestCommonPrefix(strs []string) string {if len(strs) 0 {return ""}isCommonPrefix : func(length int) bool {str0, count : strs[0][:length], len(strs)for i : 1; i < count; i {if strs[i][:length] ! str0 …

用树莓派监测地震?

监测人类活动和地质活动对地球的影响是 Raspberry Shake 在全球取得的一项成功。 Raspberry Shake 的目标是建立一个让公民科学家也能使用的专业级地震仪。现在&#xff0c;他们在全球安装了数千台基于 Raspberry Pi 的高灵敏度仪器&#xff0c;为前沿研究提供动力。 解决方案…

Facial Micro-Expression Recognition Based on DeepLocal-Holistic Network 阅读笔记

中科院王老师团队的工作&#xff0c;用于做微表情识别。 摘要&#xff1a; Toimprove the efficiency of micro-expression feature extraction,inspired by the psychological studyof attentional resource allocation for micro-expression cognition,we propose a deep loc…

IDEA中无法保存设置 Cannot Save Settings

确定原因: 在IDEA中父工程不应该存在有子工程的相关东西 首先,这是我的DCYJ项目(观察右侧的Content Root) 其次,这是我的EAPOFode项目(观察右侧的Content Root爆红处) 最后我将DCYJ项目右侧的Content Root全部删掉

Java毕业设计 基于springboot vue撸宠平台 宠物系统

Java毕业设计 基于springboot vue撸宠平台 宠物系统 springboot撸宠平台 宠物系统 功能介绍 首页 图片轮播 用户或商家注册 用户或商家登录 登录验证码 店铺信息 店铺详情 店铺投诉 宠物信息 宠物详情 预订 退订 搜索 收藏 点赞 踩 评论 个人中心 更新信息 我的收藏 在线客服…