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

【每日一面】盒子模型

基础问答

问题:标准的 CSS 盒子模型是怎样的?

答案:标准盒子模型由内容区域(content)、内边距(padding)、边框(border)和外边距(margin)组成。在 content-box 模式下,width 和 height 属性仅指内容区域的宽度和高度,元素实际占据的宽度 = width + padding + border + margin,高度同理。

扩展延伸

关于盒子模型,其实问答上都是比较基础的,在这里就仅扩展了解一下 BFC 。

BFC:Block Formatting Context,区块格式上下文,是块级盒子布局过程发生的位置。

定义比较拗口,我们换句大白话,就是 BFC 是个容器,其内部的 DOM 元素按照一定的规则进行排列,多个 BFC 之间互相不影响。

关于 BFC 的规则:

  • BFC 就是一个块级元素,遵循块级元素在文档流上的排列规则(一个块级元素占一行,从上到下依次排列)
  • 是一个独立的容器,内部元素不会影响到外部。
  • 同一个 BFC 内部的元素之间,相邻元素的 margin 会有重叠。
  • 浮动元素会参与 BFC 的高度计算。

BFC 解决的问题:核心是“隔离布局”

  1. 解决 margin 重叠的问题
  2. 浮动导致的高度塌陷问题
  3. 实现两栏布局

面试追问

  1. 两个相邻的 div,高度都设置为 10px,都设置了 margin:10px 之后,他们的总高度是多少?

总高度为 50px,这两个相邻的 div 出现了 margin 重叠的问题。

  1. 如果一个设置为 margin:10px,一个设置为 margin:15px,这时候的高度是多少?

总高度为 margin 10px + height 10px + margin 15px + height 10px + margin 15px = 60px,在 margin 重叠的时候,会选择两个里面最大的 margin 作为此时的边距。

  1. 你提到的 margin 重叠是指什么?什么时候会触发这个重叠?

就是两个相邻的块级元素在垂直方向上设置 margin 的时候,相邻的上下 margin 会合并成一个,其值为二者最大的那个。

触发重叠需要满足条件:1. 块级元素,2. 元素之间没有 border、padding、content、height 等,即空的区块,3. 区块间未被隔离(参考 MDN 文档中的,没有内容将父元素和后代元素分开)

  1. 我不想出现这种重叠,我写的时候是什么样的,就应该是什么样的,怎么处理?

通过创建 BFC 解决,给其中一个元素套上 BFC 容器即可。

  1. BFC 是什么?怎么创建

BFC 就是一个块级的容器,用来设计其内部的元素布局。

通过创建浮动元素、绝对定位元素、行内块元素、弹性元素、网格元素、overflow 不为 visibleclip 的元素等方式来创建一个 BFC。

  1. 我如果使用 overflow: hidden 来触发 BFC,会有什么影响?

内容会有溢出的可能性,高度溢出后,部分内容不可见。一般通过在内容增加一个容器用于控制内容显示。

  1. 问个其他的,margin 和 padding 可以取负值吗?这俩取负值有什么区别。

padding 是内容区和边框的内部间距,取负值会导致内容区超出盒子边界,可能覆盖其他元素,一般不用。

margin 是盒子和其他元素的外部边距,一般来说是用于调整元素位置的。

http://www.zskr.cn/news/17873.html

相关文章:

  • ai 对话框一直往下滚可能要成为过云,当初只是为了快速现实ai的演示界面而己,是该走入正题 了
  • 脚手架安全巡检智能化!AI 让隐患识别更精准、整改更高效
  • 计划管理
  • 苍穹外卖第二天(Nginx如何配置、MD5加密)
  • 自动引入的element-plus覆盖tailwindcss样式冲突解决方法
  • Linux之周期性定时任务实践
  • 24 LCA模拟赛2T4 colorful 题解
  • 23 LCA模拟赛2T2 异或排列 题解
  • SQLAlchemy 库 - 实践
  • 国庆做题记录(基础算法)
  • 504 品酒大会!!!!!!
  • 【数据结构】可撤销并查集 - Slayer
  • 【题解】P11459 [USACO24DEC] Its Mooin Time P
  • 创建一个springboot项目,mybatis连接嵌入式数据库H2,实现增删改查功能
  • 基于众包的产品质量比较与推荐算法研究
  • 10/9
  • 线程池总结
  • 深入解析:一款相机是只有桶形畸变 和 枕形畸变的一种,还是两个都有?
  • WPF Epplus export 10M+ items in excel with multiple sheets batch by batch
  • CF2152G Query Jungle
  • 下好多雨
  • 戴尔电脑开机出现supportassist怎么办_戴尔电脑开机出现supportassist多种解决优秀的方法
  • 项目经理常见面试题7:作为项目经理,你如何协调项目中不同角色(构建、测试、产品)的矛盾?
  • 由等概率(a,b)生成等概率(c,d)
  • 详细介绍:C#练习题——泛型实现单例模式和增删改查
  • 运行Udacity的MPC控制项目指南(project_10)在Ubuntu 18.04环境下
  • 网络流最小割,无向图建图法,求最小割点转换求最小割边
  • 2025/10/9
  • 深度学习概述 - -一叶知秋
  • C#性能优化基础:内存诊断(dump)