当前位置: 首页 > 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.hskmm.com/?act=detail&tid=27590

相关文章:

  • 日总结 9
  • 为什么没有做出题目喵?
  • 杂题选做
  • kettle插件-国产数据库瀚高插件,助力国产数据库腾飞
  • 利用旋钮控制小灯亮度
  • 37 ACwing 298 Fence 题解
  • 35 ACwing 297 The Battle Chibi 题解
  • 一款由网易出品的免费、低延迟、专业的远程控制软件,支持手机、平板、Mac 、PC、TV 与掌机等多设备远控电脑!
  • 计划管理
  • 苍穹外卖第二天(Nginx如何配置、MD5加密)
  • aardio跨窗口传递变量
  • AI在简单视觉推理谜题中的挑战
  • 自动引入的element-plus覆盖tailwindcss样式冲突解决方法
  • 已严肃完成今日96种状态的超级神仙DP大学习
  • P3388 【模板】割点(割顶) tarjan
  • new day
  • 10.9每日总结
  • vLLM 吞吐量优化实战:10个KV-Cache调优方法让tokens/sec翻倍
  • Linux之周期性定时任务实践
  • MyBatis-Plus 的 QueryWrapper 应用以及在内存中处理JSON数组字符串匹配
  • P9461 「EZEC-14」众数 II
  • 提升
  • 详细介绍:win11 安装 WSL2 Ubuntu 并支持远程 SSH 登录
  • Ai元人文:论智能的“全息定帧”与“渐进式显影”机制
  • 24 LCA模拟赛2T4 colorful 题解
  • 23 LCA模拟赛2T2 异或排列 题解
  • Bugkuctf的哥哥的秘密
  • 国庆做题记录(基础算法)
  • fp16训练神经网络时出现nan问题
  • 第十篇