关于CSS里的块级格式

1.BFC 定义

bfc(block formatting context)直译为”块级格式化上下文”。它是一个独立的渲染区域,只有block-level box(块级元素)参与, 它规定了内部的block-level box如何布局,并且与这个区域外部毫不相干.

通俗地来说:创建了 BFC的元素就是一个独立的盒子,里面的子元素不会在布局上
影响外面的元素(里面怎么布局都不会影响外部),BFC任然属于文档中的普通流

2.BFC的生成:

知道了BFC怎么触发BFC
满足以下条件之一都可以触发BFC,变身为BFC

根元素

立即学习“前端免费学习笔记(深入)”;

float属性不为none

position不为static和relative

overflow不为visible

display为inline-block, table-cell, table-caption, flex, inline-flex

你会发现BFC无处不在,只是自己用的时候不知道而已

3.BFC布局规则:

变身为BFC后有什么特性呢,以下:

内部的Box会在垂直方向,一个接一个地放置。

Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠

每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

BFC的区域不会与float box重叠。

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

计算BFC的高度时,浮动元素也参与计算

4.BFC作用:

用起来come boby

1.防止外边距重叠

bfc导致的属于同一个bfc中的子元素的margin重叠(Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠)

问题:由图可以看到,String1和String2 之间只有20px的margin,按理来说应该是40px,但这是在bfc中导致了他们的margin重叠

代码:

.container1{        /* 通过overflow:hidden可以创建bfc */        overflow: hidden;        background-color: red;        width: 300px;    }    .sub1{        margin: 20px 0px;        background-color: #dea;    }
String1
String2

解决方法:我们可以在div外面包裹一层容器,并触发该容器生成一个BFC。那么两个div便不属于同一个BFC,就不会发生margin重叠了。

代码:

    .newbfc{            overflow: hidden;    }
String1
String2

2.清除浮动:

问题:当元素的子元素都浮动后,会出现高度坍塌的现象,即父容器的高度不会被撑开

代码:

    .pre2{        width: 200px;        border: 2px solid red;    }    .float1,.float2{        width: 100px;        height: 100px;        float: left;    }    .float1{        background-color: #dee;    }    .float2{        background-color: #dcc;    }

解决方法:

bfc的规则:计算BFC的高度时,浮动元素也参与计算所以只要将父容器设置为bfc就可以把子元素包含进去:
这个容器将包含浮动的子元素,它的高度将扩展到可以包含它的子元素,在这个BFC,这些元素将会回到页面的常规文档流。

.pre2{        width: 200px;        border: 2px solid red;        /* 设置overflow*/        overflow:hidden;    }

3.解决布局:防止文字环绕

代码:

.container2{        overflow: hidden;        width: 200px;    }    .box{        float: left;        width: 100px;        height: 30px;        background-color: #daa;    }

sdfadsfdff fffffffds fsfffff sfd fsdsdfsdf fffffff

这个p元素并没有移动,但是它却出现在浮动元素的下方。p元素的line boxes(指的是文本行)进行了移位。此处line boxes的水平收缩为浮动元素提供了空间。

bfc的规则:每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

解决这个问题只要将p元素添加overflow:hidden使其成为一个新的bfc就可以了

相信看了这些案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

相关阅读:

HTML中划分框窗有哪些常用属性

在HTML中有哪些引用CSS的方式

iframe的去边框和无边框有哪些操作方式

以上就是关于CSS里的块级格式的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 17:31:28
下一篇 2025年12月21日 17:31:55

相关推荐

  • CSS的伪类选择器

    这次给大家带来css的伪类选择器,css伪类选择器的注意事项有哪些,下面就是实战案例,一起来看一下。 a.random:hover{color:#64FFDA;font-size:120%;} //选择的是class=”random”的标签。 a#search:active{font-size:80…

    2025年12月21日
    000
  • 为什么把css文件放在头部

    我们知道,在html文件中,我们一般都是把css放在头部,把js放在尾部,这是为什么呢?今天给大家好好分析一下这样做的原因。 这样会先加载css的样式,在渲染dom的时候已经知道了自己的样式了,所以一次渲染成功 如果css放在底部,那么需要先渲染dom,然后加载css后会重新渲染之前dom,需要两次…

    好文分享 2025年12月21日
    000
  • style对象的cssText方法有哪些使用方法

    这次给大家带来style对象的csstext方法有哪些使用方法,style对象的csstext方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 cssText 本质是什么?   cssText 的本质就是设置 HTML 元素的 style 属性值。 cssText 怎么用? domElem…

    好文分享 2025年12月21日
    000
  • html+css+jquery做选项卡

    这次给大家带来html+css+jquery做选项卡,html+css+jquery做选项卡的注意事项有哪些,下面就是实战案例,一起来看一下。 列表选项卡 body{ margin:0px; padding:0px; } #main{ width:310px; border:1px solid #C…

    好文分享 2025年12月21日
    000
  • html+css+javascript如何实现列表循环滚动

    这次给大家带来html+css+javascript如何实现列表循环滚动,html+css+javascript实现列表循环滚动的注意事项有哪些,下面就是实战案例,一起来看一下。 说明:设置时间定时,在规定的时间内替换前一个节点的内容 1、关键代码:javascript: var dome=docu…

    好文分享 2025年12月21日
    000
  • HTML的TextArea怎么保存格式

    这次给大家带来html的textarea怎么保存格式,html的textarea保存格式的注意事项有哪些,下面就是实战案例,一起来看一下。 textarea在保存时格式是可以保存到数据库的,但是展示时因为/n和不能互转导致页面不能按照刚开始的时候的格式展示,所以在页面展示的时候,要在值的外面嵌套一层…

    好文分享 2025年12月21日
    000
  • 怎样操作meta标签中的viewport来控制设备屏幕的css属性

    这次给大家带来怎样操作meta标签中的viewport来控制设备屏幕的css属性,利用meta标签中的viewport来控制设备屏幕的css属性的注意事项有哪些,下面就是实战案例,一起来看一下。 width-viewport的宽度 height-viewport的高度 initial-scale 初…

    好文分享 2025年12月21日
    000
  • 怎样实现meta标签中的viewport来控制设备屏幕的css属性

    这次给大家带来怎样操作meta标签中的viewport来控制设备屏幕的css属性,利用meta标签中的viewport来控制设备屏幕的css属性的注意事项有哪些,下面就是实战案例,一起来看一下。 width-viewport的宽度 height-viewport的高度 initial-scale 初…

    好文分享 2025年12月21日
    000
  • 如何使用CSS对TD中INPUT的宽度设置

    这次给大家带来如何使用css对td中input的宽度设置,使用css对td中input的宽度设置的注意事项有哪些,下面就是实战案例,一起来看一下。 给某个option 添加 selected = “selected” 属性就是默认选项 全部 通过 未通过 则“通过”为默认选中…

    好文分享 2025年12月21日
    000
  • 怎样编写灵活、稳定、高质量的HTML和css代码

    这次给大家带来怎样编写灵活、稳定、高质量的html和css代码,编写灵活、稳定、高质量的html和css代码的注意事项有哪些,下面就是实战案例,一起来看一下。 黄金定律永远遵循同一套编码规范,不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的. 一、语法:1.用两个空格来代替制表…

    好文分享 2025年12月21日
    000
  • 怎样用HTML和CSS做出大白

    这次给大家带来怎样用html和css做出大白,用html和css做出大白的注意事项有哪些,下面就是实战案例,一起来看一下。 PS:您最好对 HTML 和 CSS 有一定的了解,但如果你是小白也没关系,小白见「大白」也是可以的! 一、准备工作 进入到 /home/shiyanlou/ 目录下,新建空白…

    好文分享 2025年12月21日
    000
  • Html+css怎样实现纯文字和带图标的按钮

    这次给大家带来html+css怎样实现纯文字和带图标的按钮,html+css实现纯文字和带图标的按钮的注意事项有哪些,下面就是实战案例,一起来看一下。 本文总结一下一些基础页面元素的实现方式,后续陆续更新。首先我们遇到最多的可能是按钮的切图,按钮可能有很多种外观,但是一般可分为纯文字的和带图标的按钮…

    好文分享 2025年12月21日
    000
  • CSS的SASS样式应该怎么使用

    这次给大家带来css的sass样式应该怎么使用,css的sass样式使用的注意事项有哪些,下面就是实战案例,一起来看一下。 随着越来越多的开发者使用SASS,我们有必要关注一下SASS的代码的个数问题。 我们可以从CSS(层叠样式表)的语法出发,来解释SASS语法的一些特别之处,毕竟,CSS样式指南…

    好文分享 2025年12月21日
    000
  • HTML的基础知识.关于css样式表和样式属性的详细介绍

    这次给大家带来html的基础知识.关于css样式表和样式属性的详细介绍,使用html的基础知识css样式表和样式属性的注意事项有哪些,下面就是实战案例,一起来看一下。 一、position:fixed     锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口。 二、position:a…

    好文分享 2025年12月21日
    000
  • css怎样固定div或者table在指定位置

    这次给大家带来css怎样固定div或者table在指定位置,用css固定div或者table在指定位置的注意事项有哪些,下面就是实战案例,一起来看一下。 .bottomTable{ background-color: rgb(249,249,249); z-index:99999999; posit…

    好文分享 2025年12月21日
    000
  • CSS3的文本阴影text-shadow属性应该如何使用

    这次给大家带来css3的文本阴影text-shadow属性应该如何使用,使用css3的文本阴影text-shadow的注意事项有哪些,下面就是实战案例,一起来看一下。 文本阴影text-shadow属性特效: 1.右下角阴影,左下角阴影,左上角阴影,右上角阴影 text-shadow p{ text…

    好文分享 2025年12月21日
    000
  • html以及css的常用用法

    这次给大家带来html以及css的常用用法,html以及css用法的注意事项有哪些,下面就是实战案例,一起来看一下。 我将利用三天的时间来完成制作京东首页的静态页面效果,其中包含的内容有html以及css。 1、在开发进行之前,首先要配置开发环境:我们需要安装sublime  webstorm  v…

    好文分享 2025年12月21日
    000
  • 怎样用H5预览PDF格式的文档

    这次给大家带来怎样用h5预览pdf格式的文档,h5预览pdf格式文档的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 PDF.js is a Portable Document Format (PDF) viewer that is built with HTML5. PDF.js is c…

    好文分享 2025年12月21日
    000
  • html、css和js的注释规范用法有哪些

    这次给大家带来html、css和js的注释规范用法有哪些,使用html、css和js的注释有哪些的注意事项有哪些,下面就是实战案例,一起来看一下。 添加必要的注释,对一个有责任心、有道德模范的前端必须具备的好习惯,可以大大提高代码的可维护性、可读性。首先大家需要熟悉一下html、css、js的注释的…

    好文分享 2025年12月21日
    000
  • css3绘制一个圆圆的loading转圈动画实例分享

    本文主要介绍了css3如何绘制一个圆圆的loading圈的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 如何绘制一个圆圆的loading圈 小程序里需要一个像下面的loading,原生的没有,引入别的组件库又太大,所有决定自己写个。 1.基…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信