最详细的div边距合并的问题和解决方法

对于前端来说写页面是最基础的东西了,但是想不到还是有人不理解边距合并的问题,昨天有网友问我为什么设置的margin不是我设置的实际效果?

好吧,废话不多说,下面来说一下关于margin合并的问题。

  解决margin合并的方法有好多种:

    首先说一下嵌套关系的margin合并问题。

    1.给父元素添加padding-top值和padding-bottom

    2.给父元素添加border

    3.给父元素添加属性overflow:hidden

    4.给父元素或者子元素声明浮动float

    5.给父元素添加属性: positon:relative,给子元素声明绝对定位position:absolute

    6.给父元素或子元素声明绝对定位:position:absolute

  

在这里的父级div是a01,嵌套着子级div a02,如果在没有设置a01的合并解决方式的时候就会发生margin合并。如图

要解决这个问题,可以这样做(overflow:hidden)

可以说这个是最方便简单的了,一行代码搞定。

效果图:

还可以这样写:(padding-top和padding-bottom)

利用padding来设置效果也是一样的,开发是时候也是比较常用的,因为如果想让上或下某一边有边距合并,这样设置就可以控制了。

虽然overflow:hidden很方便,但是不要固定死一个方法,这两个方法是在实际开发解决用得比较多的。

当然还可以这样:(border)

效果图:

还可以这样:(给父元素float)

效果图:

还可以这样:(给子级元素float)

效果图:

还可以这样:(给父元素添加position)

效果图:

还可以这样:(给子元素添加position)

效果图:

还可以这样:(给父元素添加属性: positon:relative,给子元素声明绝对定位position:absolute

效果图:

接下来是:

    没有嵌套关系的margin合并问题

  当两个元素没有嵌套关系的时候(即兄弟关系),不管是否有border或者overflow属性时,两者始终会存在外边距合并问题。

在使用的时候记得取的是最大值。

效果图:

好了,到这里应该你也了解了边距合并问题和怎么去解决它了,如果有什么地方表达得不够清楚的,欢迎留言,我一定第一时间改进。

    

原文地址:https://www.cnblogs.com/hermit-gyqy/p/10405715.html

时间: 2024-08-02 23:19:14

最详细的div边距合并的问题和解决方法的相关文章

IE6/7中li浮动外边距无法撑开ul的解决方法

昨天群里有人提出了这样的问题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&

IE6浏览器下div无法遮盖select下拉框解决方法

IE6浏览器下div无法遮盖select下拉框解决方法:在IE6浏览器下,select下拉框无法被div遮盖,其他的主流浏览器都是正常的.这里简单介绍一下如何解决此问题.默认状态下IE6的表现: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.51texiao.cn

QTableWidget表格合并若干问题及解决方法

Qt提供 QTableWidget作为表格的类以实现表格的基本功能,表格中所装载的每一个单元格由类QTableWidgetItem提供.这是基于表格实现 Qt提供的一个基础类,若想实现定制表格和单元格的功能则需要派生重写,使用Qt经典的MV结构 QTableView+QAbstractItemMode来实现. 关于QTableWidget+QTableWidgetItem使用方法简介: 通常在使用这对组合以实现表格基本功能时,通常的做法是: ///////////////////////////

div居中效果出现的问题和解决方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div { width: 500px; height: 300px; margin: -150px 0px 0px -250px; top: 50%; left: 50%; background-

div嵌套margin-top失效的解决方法

近日学习过程中,出现一个问题:内外多层div嵌套时,margin-top不起作用,margin-left起作用,查询百度,有结果: 当两个容器嵌套时,如果外层容器和内层容器之间没有别的元素,firefox会把内层元素的margin-top作用与父元素. 经过测试,得如下解决方法,详请见代码中的注释: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

margin外边距合并详解

margin外边距合并详解: 外边距合并现象在网页布局中非常的常见,必须对此有明确的把我,以此做到未雨绸缪,否则可能影响工作效率,甚至严重阻碍项目的进度.在网络上已经有大量的相关文章,下面再通过实例结合对网络教材的总结,再来介绍一下外边距合并现象. 概念: 相邻的两个或者多个外边距在垂直方向上合并成一个外边距,这就是所谓的外边距合并. 水平方向不存在此现象. 外边距合并产生条件: 1.相邻的外边距之间没有非空内容.padding和border和clear分隔. 2.对象都处于文档流中,即非浮动和

CSS中的外边距合并问题

w3school中给出的合并定义为:         外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距.         合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者. 此处的“垂直外边距”一词,个人认为不太容易理解. 因为从网页上看来,top margin与bottom margin是平行的,left margin与right margin是平行的,又何来合并一说? 但其所谓的“垂直”,可直接理解为上下两个外边距(此处为个人理解). 因为就其实际合并情况考虑,只有

Collapsing margins(外边距合并)

开篇 块元素的上边距或下边距有时会合并为一个margin,这种情况称之为外边距的合并,即collapsing margins. 一个常见的css样式的bug html&css: <!DOCTYPE html> <html> <style type="text/css"> html, body{ width: 100%; height: 100%; padding: 0; margin: 0; } #main { width: 200px; h

CSS 外边距合并。

<div id = "parent"> <div id = "child"> demo </div> </div> #parent { background: red; width: 200px; height: 200px; } #child { background: green; width: 50px; height: 50px; margin-top: 50px; } child的margin-top传递到了