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

CSS margin 折叠现象的实际代码示例

下面是展示 CSS margin 折叠现象的实际代码示例,包含了几种常见的 margin 折叠场景:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Margin Collapse Example</title><style>/* 基础样式 */.container {width: 400px;margin: 20px auto;border: 1px solid #ccc;padding: 10px;}.box {height: 100px;background-color: #f0f0f0;border: 1px solid #999;text-align: center;line-height: 100px;}/* 1. 相邻兄弟元素的margin折叠 */.sibling1 {margin-bottom: 30px;}.sibling2 {margin-top: 20px;/* 实际间距是30px(取较大值),而不是50px */}/* 2. 父子元素的margin折叠(父元素没有padding/border隔离) */.parent {background-color: #e0e0e0;/* 取消注释可阻止折叠:padding: 1px; 或 border: 1px solid transparent;*/}.child {margin-top: 20px;margin-bottom: 20px;/* 子元素的margin会“溢出”到父元素外 */}/* 3. 空元素的margin折叠 */.empty-box {margin-top: 20px;margin-bottom: 20px;/* 上下margin会折叠成一个20px的margin */}/* 4. 负margin的折叠情况 */.negative-sibling1 {margin-bottom: 30px;}.negative-sibling2 {margin-top: -10px;/* 实际间距是20px(30px + (-10px)) */}</style>
</head>
<body><h2>1. 相邻兄弟元素的margin折叠</h2><div class="container"><div class="box sibling1">下方margin: 30px</div><div class="box sibling2">上方margin: 20px</div><p>实际间距是30px(取较大值)</p></div><h2>2. 父子元素的margin折叠</h2><div class="container"><div class="parent"><div class="box child">子元素上下margin: 20px</div></div><p>子元素的margin会溢出到父元素外(父元素无padding/border时)</p></div><h2>3. 空元素的margin折叠</h2><div class="container"><div class="box">上方元素</div><div class="empty-box"></div> <!-- 空元素 --><div class="box">下方元素</div><p>空元素的上下margin会折叠成一个margin</p></div><h2>4. 包含负margin的折叠</h2><div class="container"><div class="box negative-sibling1">下方margin: 30px</div><div class="box negative-sibling2">上方margin: -10px</div><p>实际间距是20px(30px + (-10px))</p></div>
</body>
</html>

代码说明:

  1. 相邻兄弟元素折叠:两个相邻元素的上下margin会合并,取较大的那个值(示例中30px覆盖20px)
  2. 父子元素折叠:当父元素没有padding、border或inline内容隔离时,子元素的margin会“溢出”到父元素外部
  3. 空元素折叠:没有内容、padding和border的空元素,其上下margin会合并为一个
  4. 负margin折叠:包含负margin时,最终间距为正margin与负margin的代数和

如何阻止margin折叠:

  • 给父元素添加padding或border
  • 使用BFC(块级格式化上下文),如给元素添加overflow: autodisplay: flex
  • 浮动元素(float不为none)不会产生margin折叠
  • 绝对定位元素的margin不会与其他元素折叠

运行这段代码可以直观看到各种margin折叠现象,以及它们的实际表现效果。

http://www.dtcms.com/a/561888.html

相关文章:

  • 企业网站推广宣传方案wordpress 文件下载插件
  • LinuxMirrors开源工具
  • 长春专业做网站做品牌网站怎么样
  • 怎么制作网站视频教程中关村电脑网官方
  • CodeForces Round 1061(div.2)A-C
  • ubuntu 安装宝塔安装ftp连接不了解决方式
  • 网站内链优化策略网页设计模板中国素材
  • 网站中怎么做网站统计平台公司名称
  • 【AWK生成curl脚本】
  • 5070显卡安装cuda环境
  • 谷歌自建站和优化禹城建设局网站
  • 媒体网站推广方法山东德州网站建设哪家最专业
  • 跟der包学习java_day4「流程控制语句」
  • 未来之窗昭和仙君(五十二)集成电路芯片生产管理序列号管理修仙版——东方仙盟筑基期
  • 从零开始之快速搭建一个出行Agent(一)
  • 沈阳建设工程信息网 专家中项网东莞优化网页关键词
  • pc做网站服务器重庆沙坪坝有什么好玩的
  • 数据结构从基础到实战——排序
  • sharepoint网站开发建设网站多少费用
  • pyinstaller封装包
  • 大规模组合优化问题的统一神经分治框架(NIPS‘24)
  • Maven 详解(中)
  • 山西做网站流程步骤鉴定手表网站
  • 广州做淘宝的化妆品网站好个人网站学生作业
  • ReactNative如何处理跨平台差异和优化应用
  • 河北邯郸做wap网站微信网页版登录界面
  • 事件传递和响应者链
  • 07-神经元模型:介绍神经网络中神经元的结构和功能
  • 河南网站建设推广泰安招聘信息最新招聘2022
  • 第73题 矩阵置零