您现在的位置是:网站首页> 编程资料编程资料
CSS 外边距(margin)重叠及防止方法使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)CSS实现三栏布局中间一栏自适应且随文字大小变化宽度的示例代码CSS columns实现两端对齐布局的示例代码用CSS Grid布局制作一个响应式柱状图的实现解决CCS中的margin:top塌陷问题css如何利用负margin技术实现平均布局解决margin 外边距合并问题 css 布局 之 两端布局的实例代码 (利用父级负的margin)
2021-09-03
1274人已围观
简介 这篇文章主要介绍了CSS 外边距(margin)重叠及防止方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
两个或多个块级盒子的垂直相邻边界会重合。结果的边界宽度是相邻边界宽度中最大的值。如果出现负边界,则在最大的正边界中减去绝对值最大的负边界。如果没有正边界,则从零中减去绝对值最大的负边界。注意:相邻的盒子可能并非是由父子关系或同胞关系的元素生成。
但是边界的重叠也有例外情况:
1、水平边距永远不会重合。
2、在规范文档中,2个或以上的块级盒模型相邻的垂直margin会重叠。最终的margin值计算方法如下:
a、全部都为正值,取最大者;
b、不全是正值,则都取绝对值,然后用正值减去最大值;
c、没有正值,则都取绝对值,然后用0减去最大值。
注意:相邻的盒模型可能由DOM元素动态产生并没有相邻或继承关系。
3、相邻的盒模型中,如果其中的一个是浮动的(float),垂直margin不会重叠,并且浮动的盒模型和它的子元素之间也是这样。
4、设置了overflow属性的元素和它的子元素之间的margin不被重叠(overflow取值为visible除外)。
5、设置了绝对定位(position:absolute)的盒模型,垂直margin不会被重叠,并且和他们的子元素之间也是一样。
6、设置了display:inline-block的元素,垂直margin不会重叠,甚至和他们的子元素之间也是一样。
7、如果一个盒模型的上下margin相邻,这时它的margin可能重叠覆盖(collapse through)它。在这种情况下,元素的位置(position)取决于它的相邻元素的margin是否重叠。
a、如果元素的margin和它的父元素的margin-top重叠在一起,盒模型border-top的边界定义和它的父元素相同。
b、另外,任意元素的父元素不参与margin的重叠,或者说只有父元素的margin-bottom是参与计算的。如果元素的border-top非零,那么元素的border-top边界位置和原来一样。
一个应用了清除操作的元素的margin-top绝不会和它的块级父元素的margin-bottom重叠。
注意,那些已经被重叠覆盖的元素的位置对其他已经重叠的元素的位置没有任何影响;只有在对这些元素的子元素定位时,border-top边界位置才是必需的。
8、根元素的垂直margin不会被重叠。
外边距(margin)重叠示例
外边距重叠是指两个垂直相邻的块级元素,当上下两个边距相遇时,起外边距会产生重叠现象,且重叠后的外边距,等于其中较大者。
为了帮助大家让学习变得轻松、高效,给大家免费分享一大批资料,帮助大家在成为前端工程师,乃至全栈工程师的路上披荆斩棘。在这里给大家推荐一个前端全栈学习交流圈:784783012 欢迎大家进群交流讨论,学习交流,共同进步。
当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。
但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有效资源还是很有必要的。
图示:
另一个重叠现象是当一个元素包含在另一个元素之中时,子元素与父元素之间也会产生重叠现象,重叠后的外边距,等于其中最大者:

同理,如果一个无内容的空元素,其自身上下边距也会产生重叠。
外边距重叠的意义
外边距的重叠只产生在普通流文档的上下外边距之间,这个看起来有点奇怪的规则,其实有其现实意义。设想,当我们上下排列一系列规则的块级元素(如段落P)时,那么块元素之间因为外边距重叠的存在,段落之间就不会产生双倍的距离。
防止外边距重叠解决方案:
虽然外边距的重叠有其一定的意义,但有时候我们在设计上却不想让元素之间产生重叠,那么可以有如下几个建议可供参考:
- 外层元素padding代替
- 内层元素透明边框 border:1px solid transparent;
- 内层元素绝对定位 postion:absolute:
- 外层元素 overflow:hidden;
- 内层元素 加float:left;或display:inline-block;
- 内层元素padding:1px;
总结
以上所述是小编给大家介绍的CSS 外边距(margin)重叠及防止方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关内容
- 控制Flex子元素在主轴上的比例的方法flex布局被子元素撑开如何保持内容不超出容器的方法
- CSS 样式的使用方式、选择器 css3的focus-within选择器的使用CSS选择器中的正则表达式使用巧用CSS属性值正则匹配选择器(小技巧)css选择器四大类:基本、组合、属性、伪类css复杂选择器及css字体样式、颜色属性详解详解如何使用CSS3中的结构伪类选择器和伪元素选择器CSS3 新增选择器的实例css3 伪类选择器快速复习小结盘点CSS Selectors Level4中新增的选择器CSS 中的六个重要选择器(三秒就可以记住)
- CSS实现宽高等比自适应容器的方法CSS背景图片固定宽高比自适应调整的实现方法CSS 实现的图片宽高自适应固定边框CSS实现的图片宽高自适应固定边框CSS实现宽度自适应宽高16:9的矩形的示例
- 前端项目修改默认滚动条样式(小结)css 设置overflow:scroll 滚动条的样式 CSS3改变浏览器滚动条样式详解如何自定义CSS滚动条的样式纯css修改浏览器scrollbar滚动条样式示例CSS 设置滚动条样式的实例代码配置H5的滚动条样式的示例代码详解css3自定义滚动条样式写法CSS3自定义滚动条样式的示例代码纯CSS改变webkit内核浏览器的滚动条样式
- css骚操作表单验证功能的实现代码纯CSS实现表单验证的示例代码使用HTML5和CSS3表单验证功能纯CSS3实现表单验证效果(非常不错)jQuery+CSS3实现的留言表格表单内容验证特效源码htm5+CSS3实现的表单美化带输入验证特效源码
- 详解用backgroundImage解决图片轮播切换CSS3实现炫酷的切片式图片轮播效果手把手教你用纯css3实现轮播图效果实例纯CSS3实现图片无间断轮播效果
- css position属性为absolute时其百分值的计算CSS position:absolute全面了解css中position属性使用详解css中position属性(absolute|relative|static|fixed)概述及应用CSS position属性absolute relative等五个值的解释
- CSS实现雨滴动画效果的实例代码css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- 运用CSS methodologies去实现模块化的方法示例
- css 多列布局解决方案css flex几种多列布局CSS实现多行多列的布局的实例代码使用CSS3实现多列布局与多背景的技巧CSS多列布局实现方法大全纯CSS无hacks的跨游览器自适应高度多列布局 推荐CSS 多列布局问题简单解决方案CSS教程:使用ul进行网页的多列布局-CSS教程-网页制作-网页教学网
