[CSS]中块级格式化上下文(BFC)

news2024/12/25 9:31:17

块级格式化上下文 (BFC)

1. 什么是BFC

BFC(Block Formatting Context)是一个独立的渲染区域,在这个区域内的布局不会影响到这个区域之外的元素。换句话说,它就像一个隔离的空间,里面的元素布局与外面的元素布局互不影响。

2. 如何创建BFC

  1. 浮动元素:当一个元素被设置为float(除了none以外的值)时,它会创建一个新的BFC。

  2. 绝对定位元素:当一个元素被设置为position: absoluteposition: fixed时,它会脱离文档流并创建一个新的BFC。

  3. display值为inline-block, table-cell, table-caption, flex, grid的元素:这些元素也会创建新的BFC。

  4. overflow属性不为visible的值:当元素的overflow属性设置为autoscrollhidden时,会创建新的BFC。

3. BFC的特性与用途

  1. 阻止外边距折叠:两个相邻的块级盒子的外边距会发生折叠,但是它们属于不同的BFC时,外边距不会折叠。

  2. 包含浮动元素:BFC可以包含浮动元素,防止它们影响周围的布局。

  3. 防止垂直外边距重叠:属于不同BFC的块级元素之间的垂直外边距不会重叠。

  4. 可以创建自适应两栏布局:通过创建BFC,可以实现两栏布局,其中一栏的内容可以自适应宽度。

4. 防止垂直外边距重叠

现象

代码如下:

<style>
    p {
      color: #f55;
      background: #fcc;
      width: 200px;
      line-height: 100px;
      text-align: center;
      margin: 100px;
    }
  </style>

<body>
  <p>Haha</p>
  <p>Hehe</p>
</body>

审查元素,发现应该有2个margin,实际却只有1个margin

解决方法

在第二个p标签外再包一层容器,并形成一个新的BFC,这样两个就不属于同一个BFC,就不会出现问题了

代码如下:

<style>
  p {
    color: #f55;
    background: #fcc;
    width: 200px;
    line-height: 100px;
    text-align: center;
    margin: 100px;
  }
  .wrap {
    overflow: hidden;
  }
</style>
<body>
  <p>Haha</p>
  <div class="wrap">
    <p>Hehe</p>
  </div>
</body>

 

5. 包含浮动元素

现象
<style>
    .par {
      border: 5px solid #fcc;
      width: 300px;
    }
​
    .child {
      border: 5px solid #f66;
      width: 100px;
      height: 100px;
      float: left;
    }
  </style>
​
<body>
  <div class="par">
    <div class="child"></div>
    <div class="child"></div>
  </div>
</body>

解决方法
<style>
    .par {
        border: 5px solid #fcc;
        width: 300px;
        overflow: hidden;
    }
​
    .child {
        border: 5px solid #f66;
        width: 100px;
        height: 100px;
        float: left;
    }
</style>
​
<body>
  <div class="par">
    <div class="child"></div>
    <div class="child"></div>
  </div>
</body>

6. 创建自适应两栏布局

现象
<style>
  body {
    width: 300px;
    position: relative;
  }
  .aside {
    width: 100px;
    height: 150px;
    float: left;
    background: #f66;
  }
  .main {
    height: 200px;
    background: #fcc;
  }
</style>

<body>
  <div class="aside"></div>
  <div class="main"></div>
</body>

解决方法
<style>
  body {
    width: 300px;
    position: relative;
  }
  .aside {
    width: 100px;
    height: 150px;
    float: left;
    background: #f66;
  }
  .main {
    height: 200px;
    background: #fcc;
    overflow: hidden;
  }
</style>

<body>
  <div class="aside"></div>
  <div class="main"></div>
</body>

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

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

相关文章

Django(二)-搭建第一个应用(1)

一、项目环境和结构 1、项目环境 2、项目结构 二、编写项目 1、创建模型 代码示例: import datetimefrom django.db import models from django.utils import timezone# Create your models here.class Question(models.Model):question_text models.CharField(max_length2…

Jmeter脚本优化——随机函数

线程组下有 2 个请求的参数中均使用到相同的参数&#xff0c;在进行参数化时&#xff0c;想 要每个请求使用不同的取值。 &#xff08; 1 &#xff09; 线程组设置如下 &#xff08; 2 &#xff09; 线程组下添加加购物车请求&#xff0c;请求传参包含商品 id &#xff08;…

app自动化-Appium学习笔记

使用Appium&#xff0c;优点&#xff1a; 1、支持语言比较多&#xff0c;例如&#xff1a;Java、Python、Javascript、PHP、C#等语言 2、支持跨应用&#xff08;windows、mac、linux&#xff09; 3、适用平台Android、iOS 4、支持Native App(原生app)、Web App、Hybird App…

Go语言学习Day2:注释与变量

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、注释①为什么要写注释&#xff1f;②单行注释…

Android卡顿掉帧问题分析之工具篇

“工欲善其事&#xff0c;必先利其器”&#xff0c;在开始着手分析卡顿问题之前&#xff0c;我们还必须要掌握一些分析性能问题的工具与手段&#xff0c;也就是掌握分析问题所使用的“器”&#xff0c;才能帮助我们更好的观测系统运行的状态&#xff0c;找到性能问题的原因。Sy…

AI助力智慧农田作物病虫害监测,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统

智慧农业是一个很大的应用市场&#xff0c;将当下如火如荼的AI模型技术与现实的农业生产场景相结合能够有效提升生产效率&#xff0c;农作物在整个种植周期中有很多工作需要进行&#xff0c;如&#xff1a;浇水、施肥、除草除虫等等&#xff0c;本文的主要目的是想要以棉花作物…

基于SpringBoot和Vue的车辆管理系统的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的车辆管理系统的设计与实现 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同学 &#x1f495;&#x1f…

吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.6-3.8

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第三周&#xff1a;浅层神经网络(Shallow neural networks)3.6 激活函数&#xff08;Activation functions&#xff09;3.7 为什么需要非线性激活函数&#xff1f;&#xff08;why need a non…

Databend 开源周报第 137 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持查询匹配倒…

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用&#xff0c;其安全问题也日益凸显。其中&#xff0c;分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施&#xff0c;并提出相应的防护策略。 一、区块链面…

Spark RDD、DataFrame和DataSet的区别

Spark RDD、DataFrame和DataSet的区别 在比较这三者的区别之前&#xff0c;先看看他们各自的定义是什么。 Spark RDD RDD是一种弹性分布式数据集&#xff0c;是一种只读分区数据。它是spark的基础数据结构&#xff0c;具有内存计算能力、数据容错性以及数据不可修改特性。 S…

教程3_图像的轮廓

目录 目标 1. 特征矩 2、轮廓质心 3. 轮廓面积 4. 轮廓周长 5. 轮廓近似 6. 轮廓凸包 7. 边界矩形 7.1.直角矩形 7.2. 旋转矩形 8. 最小闭合圈 9. 拟合一个椭圆 10. 拟合直线 目标 在本文中&#xff0c;我们将学习 - 如何找到轮廓的不同特征&#xff0c;例如面积&…

API网关-Apisix路由配置教程(数据编辑器方式)

文章目录 前言一、端口修改1. apisix 端口修改2. dashboard 端口修改3. 登录密码修改 二、常用插件介绍1. 常用转换插件1.1 proxy-rewrite插件1.1.1 属性字段1.1.2 配置示例 2. 常用认证插件2.1 key-auth插件2.1.1 消费者端字段2.1.2 路由端字段2.1.3 配置示例 2.2 basic-auth插…

工作多年,如何从 CRUD Boy 转型为分布式系统架构师?解锁分布式系统的艺术:从零开始理解分布式系统架构与设计原理!...

编程是一门艺术&#xff0c;它的魅力在于创造。 65 哥已经工作5年了&#xff0c;一直做着简单重复的编程工作&#xff0c;活活熬成了一个只会 CRUD 的打工 boy。 65 哥&#xff1a;总是听大佬讲分布式分布式&#xff0c;什么才是分布式系统呢&#xff1f; 分布式系统是一个硬件…

PyCharm Pro 2023 for Mac/Win:打造极致Python开发体验

在数字化浪潮席卷全球的今天&#xff0c;Python已成为众多开发者手中的利器。无论是数据分析、机器学习还是Web开发&#xff0c;Python都以其简洁易懂的语法和强大的功能库赢得了广泛好评。而在这个高效编程的时代&#xff0c;一款出色的Python开发工具&#xff0c;无疑能让开发…

基于word2vec+LSTM模型实现百度贴吧恶意评论预测

大家好&#xff0c;我是带我去滑雪&#xff01; Word2Vec模型能够将词语映射到高维空间中的向量表示&#xff0c;同时保留了词语之间的语义信息和上下文关系。这使得模型能够更好地理解评论中的语境和含义。LSTM模型是一种适用于处理序列数据的深度学习模型&#xff0c;能够有效…

鸡兔同笼问题:利用Scratch C/C++ Python解决

文章目录&#xff1a; 一&#xff1a;问题 二&#xff1a;解决办法 1.通过Scratch解决 2.通过C/C解决 3.通过Python解决 一&#xff1a;问题 该问题大约在1500年前的《孙子算经》中就有记载&#xff1a;“今有雉兔同笼&#xff0c;上有三十五头&#xff0c;下有九十四足&…

【数字图像处理】改变图像灰度级别

改变图像灰度级别 首先&#xff0c;对原始图像 O O O进行灰度级量化: q int ⁡ ( O 2 i ) 2 i , q\operatorname{int}\left(\frac{O}{2^{i}}\right) \times 2^{i}, qint(2iO​)2i, 灰度级别256&#xff0c;128&#xff0c;64&#xff0c;32&#xff0c;16&#xff0c;8&…

百度蜘蛛池,权重蜘蛛池,泛站蜘蛛池,shell蜘蛛池-权重蜘蛛池

蜘蛛池的作用及其类型 蜘蛛池的主要作用是加速搜索引擎蜘蛛对网站链接的爬取&#xff0c;从而实现快速收录。使用权重蜘蛛池可以提高搜索引擎蜘蛛对网站链接的权重评价&#xff0c;实现秒收效果和发布外链的目的。常见的蜘蛛池有百度蜘蛛池、搜狗蜘蛛池和谷歌蜘蛛池等。 本文…

blog-engine-06-pelican 静态网站生成 windows11 安装实战笔记

拓展阅读 blog-engine-01-常见博客引擎 jekyll/hugo/Hexo/Pelican/Gatsby/VuePress/Nuxt.js/Middleman 对比 blog-engine-02-通过博客引擎 jekyll 构建 github pages 博客实战笔记 blog-engine-02-博客引擎jekyll-jekyll 博客引擎介绍 blog-engine-02-博客引擎jekyll-jekyl…