iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何解决CSS中margin边界叠加的问题
  • 787
分享到

如何解决CSS中margin边界叠加的问题

2024-04-02 19:04:59 787人浏览 八月长安
摘要

小编给大家分享一下如何解决CSS中margin边界叠加的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!CSS的margin边界叠加深度剖析边界叠加简介边界叠加是一个相当简单的概念。但是

小编给大家分享一下如何解决CSS中margin边界叠加的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

CSS的margin边界叠加深度剖析

边界叠加简介

边界叠加是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混淆。简单地说,当两个垂直边界相遇时,它们将形成一个边界。这个边界的高度等于两个发生叠加的边界的高度中的较大者。

当一个元素出现在另一个元素上面时,第一个元素的底边界与第二个元素的顶边界发生叠加,见图:

如何解决CSS中margin边界叠加的问题

◆元素的顶边界与前面元素的底边界发生叠加

当一个元素包含在另一个元素中时(假设没有填充或边框将边界分隔开),它们的顶和/或底边界也发生叠加,见图:

如何解决CSS中margin边界叠加的问题

◆元素的顶边界与父元素的顶边界发生叠加

尽管初看上去有点儿奇怪,但是边界甚至可以与本身发生叠加。假设有一个空元素,它有边界,但是没有边框或填充。在这种情况下,顶边界与底边界就碰到了一起,它们会发生叠加,见图:

如何解决CSS中margin边界叠加的问题

◆元素的顶边界与底边界发生叠加

如果这个边界碰到另一个元素的边界,它还会发生叠加,见图:

如何解决CSS中margin边界叠加的问题

◆空元素中已经叠加的边界与另一个空元素的边界发生叠加

这就是一系列空的段落元素占用的空间非常小的原因,因为它们的所有边界都叠加到一起,形成一个小的边界。

边界叠加初看上去可能有点儿奇怪,但是它实际上是有意义的。以由几个段落组成的典型文本页面为例(见图2-8)。第一个段落上面的空间等于段落的顶边界。如果没有边界叠加,后续所有段落之间的边界将是相邻顶边界和底边界的和。这意味着段落之间的空间是页面顶部的两倍。如果发生边界叠加,段落之间的顶边界和底边界就叠加在一起,这样各处的距离就一致了。

如何解决CSS中margin边界叠加的问题

◆边界叠加在元素之间维护了一致的距离

只有普通文档流中块框的垂直边界才会发生边界叠加。行内框、浮动框或绝对定位框之间的边界不会叠加。

边界叠加的问题

边办叠加是一个如果误解就会导致许多麻烦的CSS特性。请参考div元素内嵌套段落的简单示例:

<div id="box"> 
<p>Thisparagraphhasa20pxmargin.p> 
</div>

div框设置了10像素边界,段落设置了20像素的边界:

#box{  
margin:10px;  
background-color:#d5d5d5;  
}  
p{  
margin:20px;  
background-color:#6699ff;  
}

你会自然地认为产生的样式会像图1-1那样,在段落和div之间有20像素的距离,在div外边围绕着10像素的边界。

如何解决CSS中margin边界叠加的问题

图1-1

但是,产生的样式实际上像图1-2。

如何解决CSS中margin边界叠加的问题

图1-2

这里发生了两个情况。首先,段落的20像素上边界和上边界与div的10像素边界叠加,形成一个单一的20像素垂直边界。其次,这些边界不是被DIV包围,而是突出到DIV的顶部和底部的外边。出现这种情况是由于具有块级子元素的元素计算其高度方式造成的。

如果元素没有垂直边框和填充,那么它的高度就是它包含的子元素的顶部和底部边框边缘之间的距离。因此,包含的子元素的顶部和底部空白边就突出到容器元素的外边。但是,有一个简单的解决方案。通过添加一个垂直边框或填充,空白边就不再叠了,而且元素的高度就是它包含的子元素的顶部和底部空白边边缘之间的距离。

为了让前面的示例看起来像图1-1这样,只需在div周围添加补白或边框:

#box{  
margin:10px;  
padding:1px;  
background-color:#d5d5d5;  
}  
p{  
margin:20px;  
background-color:#6699ff;  
}

边界叠加的大多数问题可以通过添加透明边框或1px的补白来修复。

补充解决方案:

1.外层padding

2.透明边框border:1pxsolidtransparent;

3.绝对定位postion:absolute:

4.外层DIVoverflow:hidden;

5.内层DIV 加float:left;display:inline;

6.外层DIV有时会用到zoom:1;

看完了这篇文章,相信你对“如何解决CSS中margin边界叠加的问题”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网JavaScript频道,感谢各位的阅读!

--结束END--

本文标题: 如何解决CSS中margin边界叠加的问题

本文链接: https://www.lsjlt.com/news/72971.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决CSS中margin边界叠加的问题
    小编给大家分享一下如何解决CSS中margin边界叠加的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!CSS的margin边界叠加深度剖析边界叠加简介边界叠加是一个相当简单的概念。但是...
    99+
    2024-04-02
  • CSS中margin边界叠加用法
    这篇文章主要讲解了“CSS中margin边界叠加用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS中margin边界叠加用法”吧!深度剖析CSS的ma...
    99+
    2024-04-02
  • 如何解决margin折叠的问题
    今天就跟大家聊聊有关如何解决margin折叠的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 前几天,有个电面问道了这个问题,抓紧补一...
    99+
    2024-04-02
  • 解决外边距margin叠加的方法教程
    这篇文章主要讲解了“解决外边距margin叠加的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“解决外边距margin叠加的方法教程”吧!一、首先你要知道什么情况下会触发:两个或多个毗...
    99+
    2023-06-08
  • CSS中margin加倍的问题怎么解决
    本篇内容介绍了“CSS中margin加倍的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! C...
    99+
    2024-04-02
  • CSS中如何解决越界的问题
    这期内容当中小编将会给大家带来有关CSS中如何解决越界的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。CSS相关知识(1)如何解决父元素的第一个子元素的margin-...
    99+
    2024-04-02
  • 如何解决css中margin-right没有效果的问题
    这篇文章主要讲解了“如何解决css中margin-right没有效果的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决css中margin-rig...
    99+
    2024-04-02
  • 如何解决margin:0pxauto居中问题
    本篇文章为大家展示了如何解决margin:0pxauto居中问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。向大家描述一下margin:0pxauto居中问题,使...
    99+
    2024-04-02
  • 如何解决margin-top塌陷的问题
    这篇文章给大家分享的是有关如何解决margin-top塌陷的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是margin-top塌陷margin-top塌陷是在CSS的盒...
    99+
    2024-04-02
  • css如何使用:not() 解决lists边框的问题
    小编给大家分享一下css如何使用:not() 解决lists边框的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用:not() 解决lists边框的问题在w...
    99+
    2023-06-27
  • 如何解决CSS margin-top在火狐下失效问题
    这期内容当中小编将会给大家带来有关如何解决CSS margin-top在火狐下失效问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。margin-top属性在火狐及IE下...
    99+
    2024-04-02
  • 如何使用margin解决缩进问题
    这篇文章主要介绍“如何使用margin解决缩进问题”,在日常操作中,相信很多人在如何使用margin解决缩进问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用marg...
    99+
    2024-04-02
  • css如何解决文字和text-decoration:underline下划线重叠问题
    这篇文章给大家分享的是有关css如何解决文字和text-decoration:underline下划线重叠问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、text-deco...
    99+
    2024-04-02
  • 如何解决css中的匹配问题
    这篇文章主要介绍了如何解决css中的匹配问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题描述众所周知在写 css的时候,会根据html 中类的定义或者 id 的定义来写...
    99+
    2023-06-08
  • CSS中margin-top属性失效如何解决
    本篇文章给大家分享的是有关CSS中margin-top属性失效如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。关于margin-top属...
    99+
    2024-04-02
  • 怎么解决IE8中关于margin collapsing的问题
    本篇内容介绍了“怎么解决IE8中关于margin collapsing的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2024-04-02
  • firefox中div重叠覆盖之前ul的问题如何解决
    这篇文章主要介绍“firefox中div重叠覆盖之前ul的问题如何解决”,在日常操作中,相信很多人在firefox中div重叠覆盖之前ul的问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • 如何解决两个div叠加触发事件发生闪烁的问题
    如何解决两个div叠加触发事件发生闪烁的问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。当鼠标移到div1上的时候,会出现div2。出现时d...
    99+
    2024-04-02
  • 如何解决移动端1px边框的问题
    这篇文章主要为大家展示了“如何解决移动端1px边框的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决移动端1px边框的问题”这篇文章吧。当然了,在这之...
    99+
    2024-04-02
  • 如何解决css中高度塌陷的问题
    本文将为大家详细介绍“如何解决css中高度塌陷的问题”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“如何解决css中高度塌陷的问题”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作