您现在的位置是:网站首页> 编程资料编程资料
CSS深入学习之让你认识不一样的marginCSS中margin边界叠加问题及解决方案CSS margin全面了解浅谈css margin重叠CSS 之margin知识点(必看)css布局之负margin妙用及其他实现细说CSS中margin属性的使用 深入解析CSS中margin属性的使用CSS中使用负margin值来调整居中位置CSS属性探秘系列(六):margin通过css属性margin:auto让Div中的Table居中
2023-10-21
239人已围观
简介 这篇文章主要给大家介绍了CSS中margin的用法和常见问题的分析,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
一、简介
margin我们一般习惯的叫它外边距,分别可以设置四个方向的外边距,这里不再赘述赋值语法。
实际上,我们通常设置的margin是物理级别的设置,而margin还有start、end、before、after等,这些主要是逻辑级别的设置,如果你感兴趣的话,自行Google吧。
在设置margin时,我们必须要知道:
二、盒子模型
说到margin,不得不说一下盒子模型:
1、从内之外content => padding => border => margin
盒子模型之所以要终点理解,主要是盒子模型的标准不一样,也就决定我们在CSS中设置的width到底是什么,这时大家多会想起那几个计算公式,实际上CSS3的到来,我们可以通过box-sizing来设置盒子模型的标准:
2、border-box: width从border开始计算;
3、content-box: width从content开始计算;
4、padding-box: 已经从标准中去除。
再来一张图,是不是已经了然于胸了

三、margin重叠问题
这种问题主要发生在block元素上并且不是浮动元素(这里并没有描述清楚,在后面会详细讲),下面我们来看发生的情况。
1、发生在相邻的兄弟元素
.a { margin: 50px 0; } .b { margin: 100px 0; }
相邻的兄弟元素发生的margin重叠
这种情况发生margin重叠,相邻兄弟节点之间的距离为最大margin值,避免这种情况的最佳方式,在垂直方向上,只设置margin-top或者margin-bottom。
2、发生在父子节点
div(class="b") div(class="a") div(class="c") C
.a { margin: 20px 0; } .b { margin: 100px 0; }
父子节点发生margin重叠
这里按照我们的理解应该是a距离b是20像素,c距离a是100像素。但是事实却不是这样,这里我们可以通过以下方法解决重叠的问题:
- 父元素设置border;
- 父元素设置padding;
- 父元素设置overflow为hidden或者scroll,其他的不适用;
- 父元素设置position为fixed或者absolute,其他的不适用。
四、神奇的margin负值
我们给一个block元素设置四个方向上的margin会发生什么:
- top和left设置负值,会将元素向上或者左移动对应的像素距离;
- bottom和right设置负值,则会将相邻的元素向上或者左移动。
这里还有一点,查资料的时候,发现很多人多说margin负值可以改变元素的宽度,这里我想更正一下,这并不是margin负值的特性,而是margin的特性,比如下面这段CSS,完全可以设置块级元素的宽度。
.item { margin: 0 200px; height: 200px; }对于margin赋值在布局的应用很广泛,比如我们已知一个元素的宽高,你可以通过margin负值居中。
.item { position: absolute; background: red; width: 200px; height: 200px; top: 50%; left: 50%; margin-top: -100px; margin-left: -100px; }五、margin与float
对于这两个让人头疼的属性混到一起,我只想说,真的很爆炸。上面我说过“这种问题主要发生在block元素上并且不是浮动元素”,这里要再补充两点:
- 相邻兄弟元素,如果两者多是浮动元素,则不发生margin重叠;
- 父子元素,如果其中一个是浮动元素,则不会发生margin重叠;
主要还是由于浮动元素不在正常的文档流中,所以还是用上清除浮动的方法比较好。(一下为bootstrap的实现方式)
.clearfix::before, .clearfix::after { content: " "; display: table; } .clearfix::after { clear: both; }总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
相关内容
- HTML+CSS实现单选框、复选框美观的样式利用CSS3实现单选框动画特效示例代码纯css3实现效果超级炫的checkbox复选框和radio单选框CSS3实例分享--超炫checkbox复选框和radio单选框CSS3实现的表单单选框、复选框特效CSS3实现复选框动画特效示例代码 CSS自定义绿色复选框按钮样式使用CSS实现页面复选框的方法纯CSS实现自定义单选框和复选框功能
- CSS中margin和padding的区别浅析css行内元素padding,margin,width,height没有变化css中padding和margin的异同点介绍CSS边距属性定义是用margin还是用padding的两者对比PHPWind7.0风格css样式详解Z-BLOG模板CSS默认样式注释大全简化的CSS Reset:15套CSS重设实例Css Reset(复位)的简单介绍-CSS教程-网页制作-网页教学网
- HTML+CSS实现动态背景登录页面amazeui页面分析之登录页面的示例代码Html制作简单而漂亮的登录页面Div+CSS仿支付宝登录页面Div+CSS仿微信公众平台登录页面如何布局登录页面使用css样式设计一个简单的html登陆界面的实现
- css选择器_动力节点Java学院整理 CSS选择器实现字段解析CSS中选择器的权重值的计算CSS: hover选择器的使用详解详解CSS3选择器:nth-child和:nth-of-type之间的差异css3之UI元素状态伪类选择器实例演示CSS 学习笔记之CSS Selectorcss id选择器使用_动力节点Java学院整理 CSS 属性选择器_动力节点Java学院整理CSS选择器的新用法(推荐)
- 天天飞车新版本攻略心得_烧饼修改器代码刷雷瑟方法技巧推荐_手机游戏_游戏攻略_
- 天天飞车更新版攻略心得_新版本燃油使用技巧教程推荐_手机游戏_游戏攻略_
- 天天飞车葫芦侠修改器烧饼修改器防闪退教程攻略_刷分刷金币心得_手机游戏_游戏攻略_
- 天天飞车游戏声音怎么修改_天天飞车游戏人物声音修改方法教程_手机游戏_游戏攻略_
- 天天飞车无敌模式刷分攻略_2月13日最新无敌模式刷分教程_手机游戏_游戏攻略_
- 我去西游 属性战力进阶的方法_手机游戏_游戏攻略_
