您现在的位置是:网站首页> 编程资料编程资料
CSS深入学习之让你认识不一样的marginCSS中margin边界叠加问题及解决方案CSS margin全面了解浅谈css margin重叠CSS 之margin知识点(必看)css布局之负margin妙用及其他实现细说CSS中margin属性的使用 深入解析CSS中margin属性的使用CSS中使用负margin值来调整居中位置CSS属性探秘系列(六):margin通过css属性margin:auto让Div中的Table居中
2021-09-04
978人已围观
简介 这篇文章主要给大家介绍了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选择器的新用法(推荐)
- css是什么_动力节点Java学院整理 Html/Css(新手入门第一篇必看攻略)css 入门基础教程CSS入门篇之传智播客学习15个必须阅读的CSS入门文章CSS 语法 学习css入门者看css入门教程之学习网页布局(1)-CSS教程-网页制作-网页教学网学DIV CSS技术,如何入门?-CSS教程-网页制作-网页教学网CSS入门教程:网页首字下沉-CSS教程-网页制作-网页教学网
- HTML+CSS实现简单下拉菜单效果js+css3制作下拉城市菜单多选代码CSS中的导航栏和下拉菜单的实现HTML+CSS实现下拉菜单的实现纯CSS实现的大型下拉菜单的示例代码纯CSS实现下拉菜单的示例代码纯css3制作鼠标悬停波浪形状弹性下拉菜单特效源码纯CSS+HTML大型下拉菜单特效利用纯css做一个下拉菜单功能的示例代码
- css html布局之display属性_动力节点Java学院整理 基于display:table的CSS布局让HTML元素和像table一样
- CSS 属性选择器_动力节点Java学院整理总结30个CSS3选择器 全面了解css 属性选择器详解CSS3中属性选择器新增加的特性详解CSS3选择器的使用方法汇总CSS属性简写和选择器的优先级问题 CSS3 选择器 属性选择器介绍CSS属性选择器的四种格式-CSS教程-网页制作-网页教学网css对边框的属性控制和链接的伪类选择器-CSS教程-网页制作-网页教学网使用CSS属性选择器来拼接HTML的DNA的方法
- CSS实现鼠标上移图标旋转效果Html+CSS绘制三角形图标css图标与文字对齐的两种实现方法CSS制作箭头图标代码(圆,三角形,椭圆) 分享18种CSS3汉堡包图标变形动画按钮特效源码Html+css实现纯文字和带图标的按钮CSS3实现带动画的天气icon图标特效源码CSS icon图标之纯CSS实现带动画效果的天气图标 用CSS样式生成搜索、购物车等图标样式(图标字体库)
- 利用CSS3伪元素实现逐渐发光的方格边框css3图片边框border-image的用法css3 边框、背景、文本效果的实现代码CSS3实现内凹圆角的实例代码一篇文章带你学习CSS3图片边框
