盒模型,BFC以及行内块级元素

一.盒模型篇

css基础框盒模型介绍:
当对一个文档进行布局的时候,浏览器的渲染引擎会根据标准之一的css基础框盒模型,将所有元素表示为一个个矩形的盒子,每个盒子由四部分组成,分别是内容 内边距 边框 外边距(但是行内元素不会因内边距(padding)和边框(border)而增加其占用的垂直空间,它们的垂直高度主要由line-height属性决定。这意味着,尽管边框和内边距会在视觉上增加元素的大小,但它们在布局上不会增加元素的高度)

1.标准盒模型content-box(默认):

块的总宽度= width + margin(左右) + padding(左右) + border(左右) 
    <div class="bzBox">标准盒模型</div><style>.bzBox{width: 100px;height: 50px;margin: 2px;padding: 2px;/* 这里设置1px,但是浏览器查看盒模型显示的不是1px,这是因为系统的缩放导致的,打开电脑设置调整缩放比例为100%后即可正常 */border: 2px solid black;box-sizing: content-box;//因为默认就是标准盒模型所以这段不要也可以}</style>

在这里插入图片描述

2.怪异盒模型border-box:

一个块的总宽度(页面中占的宽度)= width + margin(左右)(即width已经包含了padding和border值
	<div class="gyBox">怪异盒模型</div><style>.gyBox{width: 100px;height: 50px;margin: 2px;padding: 2px;border: 2px solid black;box-sizing: border-box;}</style>

在这里插入图片描述

3. 从父元素继承box-sizing:

	<div class="ParentBox"><div class="inherit">继承</div></div><style>.ParentBox{width: 100px;height: 50px;margin: 2px;padding: 2px;border: 2px solid black;box-sizing: border-box;}.inherit{width: 50px;height: 40px;margin: 2px;padding: 2px;border: 2px solid black;box-sizing: inherit;}</style>

在这里插入图片描述

二.BFC

BFC(Block formatting context)是W3C规范中的一个概念,是一个完全独立的渲染区域,它规定了内部的Block-level Box如何布局,让空间里的子元素布局不会影响到外面的布局,也不会受到外界的影响

特性:
1.内部的Box会在垂直方向,从顶部开始一个接一个地放置。
2.Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生叠加。
3.每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
4.BFC的区域不会与float box叠加。
5.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。
6.计算BFC的高度时,浮动元素也参与计算。
触发BFC的方式:
1.浮动元素(float不为none)。
2.绝对定位的元素(position为absolute或者fixed)。
3.overflow不为visible的块级元素。
4.display值为flex、flow-root 、inline-block、table-cell等。
可以解决以下问题:
1.浮动元素的父元素高度塌陷问题。
2. 两栏自适应布局问题。
3.外边距垂直方向重合问题。

1.父子关系的边距重叠(父子关系,如果子元素设置了外边距,在没有把父元素变成BFC的情况下,父元素也会产生外边距)
在这里插入图片描述
在这里插入图片描述

 <div class="parentBoxBFC1"><div class="BFCBox1"></div></div><style>.parentBoxBFC1{width: 200px;height: 100px;overflow:hidden;background-color: red;}.BFCBox1{width: 80px;height: 50px;margin: 20px;background-color: yellow;}
</style>

父盒子设置完overflow:hidden;后效果:

在这里插入图片描述
2.同级关系的边距重叠(同级元素在垂直方向上外边距会出现重叠情况,最后外边距的大小取两者绝对值大的那个))
在这里插入图片描述

<div class="BoxBFC1"></div>
<div style="overflow:hidden"></div>
<div class="BoxBFC2"></div>
<style>.BoxBFC1{width: 200px;height: 100px;background-color: red;margin: 100px;}.BoxBFC2{width: 200px;height: 100px;margin: 20px;background-color: yellow;}
</style>

添加一个空元素并设置overflow:hidden后的效果:

在这里插入图片描述

二.行内块级元素篇

1.常见的行内元素有:a,button,i,span,select,option,strog,b
2.常见的块级元素有:div p h1-h6 ul table form,dl-dt-dd,ul-li,ol-li…
3.常见的行内块级元素:img,input。
行内块元素结合了块级元素(block-level elements)和行内元素(inline elements)的特性。它们像块级元素一样可以设置宽度、高度、内外边距等,同时又像行内元素一样不会独占一行,可以和其他行内元素并排显示
4.块级元素的特点
1.独占一行,每一个块级元素都会从新的一行重新开始
2.排列方式:从上到下依次排布
3.可以直接控制宽度、高度以及盒子模型的相关css属性
4.在不设置宽度的情况下,块级元素的宽度是它父级元素内容的宽度,高度是它本身内容的高度
5.块级元素可以嵌套行内元素
6.ul/ol下面只能是li;dl下面只能是dt,dd;
7.p不能包裹其他块级元素包括它本身,可以嵌套行内元素
5.元素之间的相互转换
1.行内元素=> display: inline
2.块级元素=>display: block
3.行内块元素=>display: inline-block

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

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

相关文章

如何快速搭建nginx虚拟主机

华子目录 实验1&#xff1a;基于IP地址的虚拟主机原理 实验2&#xff1a;基于端口号的虚拟主机原理 实验3&#xff1a;基于域名的虚拟主机原理 实验1&#xff1a;基于IP地址的虚拟主机 原理 如果一台服务器有多个IP地址&#xff0c;而且每个IP地址与服务器上部署的每个网站一一…

beacon-chain+ethereum打镜像及推送镜像

部署详情 1、编写Dockerfile镜像 beacon chain对应Dockerfile文件 # 使用 Ubuntu 20.04 作为基础镜像 FROM ubuntu:20.04# 安装必要的系统库和工具 RUN apt-get update && \apt-get install -y curl && \apt-get clean# 创建存储数据的目录 RUN mkdir -p /dat…

HarmonyOS开发案例:【计算器】

介绍 基于基础组件、容器组件&#xff0c;实现一个支持加减乘除混合运算的计算器。 说明&#xff1a; 由于数字都是双精度浮点数&#xff0c;在计算机中是二进制存储数据的&#xff0c;因此小数和非安全整数&#xff08;超过整数的安全范围[-Math.pow(2, 53)&#xff0c;Math.…

【稳定检索|投稿优惠】2024年新能源技术与环境工程国际会议(ICNTEE 2024)

2024 International Conference on New Energy Technology and Environmental Engineering 一、大会信息 会议名称&#xff1a;2024年新能源技术与环境工程国际会议会议简称&#xff1a;ICNTEE 2024收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Scholar等会议官网&…

【运维】如何安装ubuntu-24.04? 如何分区?

如何安装ubuntu-24.04&#xff1f;如何分区 经过一系列折腾&#xff0c;我总结了这几点&#xff1a; &#xff08;1&#xff09;在BIOS启动设置里&#xff0c;如果是GPT的硬盘格式&#xff0c;那么对应的就是UEFI的启动方式&#xff1b;如果是MBR的硬盘格式&#xff0c;那么对…

森林消防的新利器:高扬程水泵的应用与优势/恒峰智慧科技

森林是地球上的绿色肺叶&#xff0c;保护森林安全对于维护生态平衡和人类生存环境至关重要。在森林消防领域&#xff0c;高效、快速的灭火设备是保障森林安全的重要武器。近年来&#xff0c;高扬程水泵作为一种新型的消防设备&#xff0c;在森林消防中发挥了重要作用。本文将详…

密室逃脱游戏-第12届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第58讲。 密室逃脱游戏&…

idea Maven 插件 项目多环境打包配置

背景 不同环境的配置文件不一样&#xff0c;打包方式也有差异 1. 准备配置文件 这里 local 为本地开发环境 可改为 dev 名称自定义 test 为测试环境 prod 为生产环境 根据项目业务自行定义 application.yml 配置&#xff1a; spring:profiles:#对应pom中的配置active: spring.…

3月10日PMP考试成绩已出!教你如何快速查询

3月10日PMP考试终于出成绩啦&#xff01; 2024年3月10日PMP考试成绩正在陆续分批次发布&#xff0c;预计本周成绩会全部出来&#xff0c;目前已经有同学查询到自己的成绩&#xff0c;暂时没查到成绩的同学请耐心等待。 在等待成绩的同时&#xff0c;大家可以先对PMP证书和成绩…

CST电磁仿真软件远场源的导出调用和提取结果【小白必看】

远场源的导出&调用(1) 提取Hybrid仿真所需的远场源&#xff01; Post-Processing > Tools > Result Templates Tools >Farfield and Antenna Properties > Export Farfields As Source 混合求解(Hybrid Simulation)是对安装在舰船等大型平台上的天线进行仿真…

为什么会查询不到DNS信息?怎么排查?

DNS&#xff08;域名系统&#xff09;是将域名转换为相应 IP 地址的关键系统。查询 DNS 信息具有重要作用&#xff0c;通过查询 DNS 信息&#xff0c;我们可以知道域名对应的 IP 地址&#xff0c;这是最主要的信息&#xff0c;使设备能与目标服务器进行通信&#xff1b;其次是域…

IPO压力应变桥信号处理系列隔离放大器 差分信号隔离转换0-10mV/0-20mV/0-±10mV/0-±20mV转4-20mA/0-5V/0-10V

概述&#xff1a; IPO压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。该模块内部嵌入了一个高效微功率的电源&#xff0c;向输入端和输出端…

快速了解OV证书和DV证书的区别及使用场景

OV&#xff08;Organization Validation&#xff0c;组织验证&#xff09;证书和DV&#xff08;Domain Validation&#xff0c;域名验证&#xff09;证书都是SSL/TLS证书&#xff0c;用于保护网站数据传输的安全性和提供身份验证&#xff0c;但两者在验证深度、信任级别、提供的…

【Java EE】多线程(三)线程状态

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

Spring AOP(3)

目录 Spring AOP原理 代理模式 代理模式中的主要角色 静态代理 动态代理 总结:面试题 什么是AOP? Spring AOP实现的方式有哪些? Spring AOP实现原理 Spring使用的是哪种代理方式? JDK和CGLIB动态代理的区别? Spring AOP原理 代理模式 代理模式, 也叫委托模式. …

JavaScript 流程控制语句详解:if语句、switch语句、while循环、for循环等

JavaScript&#xff0c;作为一种广泛使用的编程语言&#xff0c;它的流程控制语句是构建逻辑和实现功能的基础。流程控制语句包括条件语句、循环语句和转向语句&#xff0c;它们是编程中不可或缺的部分。 接下来&#xff0c;我们将一一解析这些语句&#xff0c;带你走进JavaSc…

刷代码随想录有感(58):二叉树的最近公共祖先

题干&#xff1a; 代码&#xff1a; class Solution { public:TreeNode* traversal(TreeNode* root, TreeNode* p, TreeNode* q){if(root NULL)return NULL;if(root p || root q)return root;TreeNode* left traversal(root->left, p, q);TreeNode* right traversal(r…

NVIDIA Omniverse Cloud API支持数字孪生开发,可解决复杂AI问题 | 最新快讯

在全球范围内&#xff0c;价值超过 50 万亿美元的重工业市场&#xff0c;正在竞相实现数字化。 基于此&#xff0c;为帮助数字孪生技术更好地赋能千行百业&#xff0c;AI 企业 NVIDIA 在架构底层算力的同时&#xff0c;也搭建了 NVIDIA AI Enterprise 和 Omniverse 两大平台。 …

【UGUI】实现长按播放动画松手停止动画播放

场景部分&#xff0c;需要把角色和动画组件、动画控制器、动画片段准备好 然后设置好转换动画的参数RUN (bool类型的) 创建一个普通按钮在UGUI里面&#xff0c;为按钮添加组件EventTrgger 在这个组件里面添加PointerDown 和PointerUp 这两个分别代表按下和弹起&#xff01; 他…

【Python小技巧】matplotlib不显示图像竟是numpy惹的祸

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、问题&#xff1a;df.plot() 显示不出图像二、尝试各种解决办法1. 增加matplotlib.use&#xff0c;设定GUI2. 升级matplotlib版本 三、numpy是个重要的库1. …