博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【前端学习】-margin
阅读量:6704 次
发布时间:2019-06-25

本文共 1128 字,大约阅读时间需要 3 分钟。

一、margin描述

【概念】盒模型中的外边距,即围绕在元素边框的空白区域,关于盒模型可以参考
【属性值】
上外边距 margin-top:10px
右外边距 margin-right:10px
下外边距 margin-bottom:10px
左外边距 margin-left:10px
当然,也缩写为 margin :top right bottom left(上右下左,即顺时针方向)
指定三个值 margin:10px 20px 30px;分别指定了上 10px、右 20px 、下 30px,即最后左边的间距默认是0;
指定两个值 margin:10px 20px;分别指定了上下 10px、左右20px
指定一个值 margin:10px;指定上下左右都是10px。
【属性单位】接受任何长度单位(px/em/rem等),auto,百分比。

二、利用margin:0 auto实现块级元素水平居中

图片描述

三、属性单位为%

水平方向使用%,距离为父元素宽度的百分比。如下图所示,父元素宽度是500px。子元素margin-left设置为10%,渲染之后为50px
图片描述
图片描述

垂直方向使用%,距离不是父元素高度的百分比,也是父元素宽度的百分比。如下图所示,父元素宽度是500px。子元素margin-top设置为10%,渲染之后为50px

图片描述
图片描述

四、margin折叠

1.相邻元素水平方向不合并,两个元素的距离等于两个元素的外边距之和
图片描述图片描述图片描述

2.相邻元素垂直方向

margin定义的是与其他元素的最小间距。
规则:margin都为正数,则取最大值;
margin中一正一负,则取两者之和
margin中都是负数,则取最小值
图片描述

3.父子元素垂直方向

如下图所示,子元素设置margin,紧贴父元素上边,切父元素设置了margin,则会合并,合并之后的值为两者中的大值
图片描述

4.子元素穿透父元素

如下图所示,子元素设置margin,紧贴父元素上边,则会导致穿透,看上去是父元素这是了margin-top
图片描述
解决方案:
父元素设置padding-top:1px 或者border:1px solid transparent
形成新的BFC,父元素或者子元素设置float,postion,overflow:hidden(我一般比较喜欢设置overflow:hidden)
如下图所示,设置父元素上述属性,即可避免穿透
图片描述

四、注意点

1.浮动元素及inline元素不会发生重叠,包括他的子元素。

原因:a.因为margin折叠只会发生在块级元素;浮动元素脱离了正常流,与其他元素不处于同一个流。

b.inline-block或者浮动元素的形成了一个新的BFC,与子元素不在一个BFC所以不会重叠;

图片描述图片描述

转载地址:http://cjblo.baihongyu.com/

你可能感兴趣的文章
(转)用CSS3移除点击交互元素的高亮背景
查看>>
遍历json获得数据的几种方法
查看>>
php Collection类的设计
查看>>
c++中的计时器代码
查看>>
语义Web和本体开发相关技术
查看>>
Mysql集群读写分离(Amoeba)
查看>>
Quest for sane signals in Qt - step 1 (hand coding a Q_OBJECT)
查看>>
SpringBoot的注解:@SpringBootApplication注解 vs @EnableAutoConfiguration+@ComponentScan+@Configuration...
查看>>
SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
查看>>
利用自定义IHttpModule来实现URL地址重写
查看>>
在网页上嵌入 PowerPoint 演示文稿
查看>>
javascript日期格式化函数,跟C#中的使用方法类似
查看>>
Android杂谈--Activity、Window、View的关系
查看>>
使用delphi 开发多层应用(十)安全访问服务器
查看>>
JavaScript计算字符串中每个字符出现的次数
查看>>
mvc中的ViewData用到webfrom中去
查看>>
小白学数据分析------>描述性统计术语汇总
查看>>
[转载]java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
查看>>
SKY IM-A800S 驱动下载
查看>>
应用程序 数据缓存
查看>>