margin

  • 版本:CSS1
  • 媒体:视觉
margin属性在CSS外边距中是比较常用的,本文将带你深入理解margin属性的各个方面,包括它的语法、取值、作用和浏览器兼容性,最后附上margin的实例,希望能够对你有所帮助。

margin定义和用法

margin:[ <length> | <percentage> | auto ]{1,4}

默认值看每个独立属性

适用于:所有元素,除非 table | inline-table | table-caption 的表格类元素之外

继承性:无

动画性:是

计算值:看每个独立属性

相关属性:[ margin-top ] || [ margin-right ] || [ margin-bottom ] || [ margin-left ]

margin属性值

auto:
水平(默认)书写模式下,margin-top/margin-bottom计算值为0,margin-left/margin-right取决于可用空间。详见:margin系列之keyword auto
<length>
用长度值来定义外边距。可以为负值
<percentage>
用百分比来定义外边距。水平(默认)书写模式下,参照其包含块 width 进行计算,其它情况参照 height ,可以为负值

margin说明

检索或设置对象四边的外延边距。
  • 如果提供全部四个参数值,将按上、右、下、左的顺序作用于四边。
  • 如果只提供一个,将用于全部的四边。
  • 如果提供两个,第一个用于上、下,第二个用于左、右。
  • 如果提供三个,第一个用于上,第二个用于左、右,第三个用于下。
  • 非替代(non-Replaced)行内元素可以使用该属性设置左、右两边的外补丁;若要设置上、下两边的外补丁,必须先使该对象表现为块级或内联块级。
  • 外延边距始终透明。
  • 某些相邻的margin会发生合并,我们称之为margin折叠:

    示例:

    h2{margin:10px 0;}
    div{margin:20px 0;}
    ......
    <h2>这是一个标题</h2>
    <div>
    	<h2>这是又一个标题</h2>
    </div>

    本例中,第一个h2的margin-bottom(10px),div的margin-top(20px),第二个h2的margin-top(10px)将被合并,它们之间的margin间隙最后是(20px),即取三者之间最大的那个值。

    如果给上例中的div加上border的话:

    示例:

    h2{margin:10px 0;}
    div{margin:20px 0;border:1px solid #aaa;}
    ......
    <h2>这是一个标题</h2>
    <div>
    	<h2>这是又一个标题</h2>
    </div>

    本例中,第一个h2的margin-bottom(10px),div的margin-top(20px)将被合并,但第二个h2的margin-top不与它们合并,因为它被border分隔,不与它们相邻。

  • margin折叠常规认知:
    • margin折叠只发生在块级元素上;
    • 浮动元素的margin不与任何margin发生折叠;
    • 设置了属性overflow且值不为visible的块级元素,将不与它的子元素发生margin折叠;
    • 绝对定位元素的margin不与任何margin发生折叠;
    • 根元素的margin不与其它任何margin发生折叠;
  • 对应的脚本特性为margin

margin浏览器支持

  • 浅绿 = 支持
  • 红色 = 不支持
  • 墨绿 = 部分支持
支持版本\类型 IE Firefox Safari Chrome Opera
版本 6.0 1.0 1.0 1.0 3.5

margin实例

以上就是这篇margin CSS外边距教程的全部内容,更多文章请进入前端开发博客

CSS3 animation状态结束后可以通过animation-fill-mode 控制动画的最后状态,分别是不改变默认行为、保持最后一个属性和回到第一帧。 - 2018-09-08

除了html5的新特性,CSS3的新特性也是面试中经常被问到的。本文分享了一些CSS3选择器、Transition,Transform和Animation等 - 2017-07-09

vw : 1vw 等于视口宽度的1%,vh : 1vh 等于视口高度的1%。本文介绍纯CSS视口单位vw和vh来自行自适应,虽然现在的兼容性还没法完全能够接受,但不妨碍你认识这个vw和vh的强大。 - 2017-07-26

CSS3 的 calc() 函数允许我们在属性值中执行数学计算操作。例如,我们可以使用 calc() 指定一个元素宽的固定像素值为多个数值的和。本文分析了calc()的计算使用方法及兼容性 - 2017-05-10

本文主要分享了一些与css3相关的文档手册,给需要的朋友参考,CSS3参考手册不断更新,值得期待 - 2017-07-08

一个使用伪元素来实现边框逐渐发光的过渡效果,主要用到scale和opacity这两个属性。 - 2017-03-31

这个 CSS3 类似于幻灯片旋转的效果,是一个比较有意思并且比较受欢迎的特效。之前没有去研究过,无意在博客上看到 Wenzi 写了这个东西,来看看他的代码是怎么实现的。 - 2017-03-21

作者从CSS3动画的基础入手,分别介绍了移动、缩放、旋转、扭曲到矩阵的变形。在最后给我们讲了关于CSS3矩阵的深度问题研究,值得看看。 - 2017-02-12

在使用CSS3的一些属性时,为了兼顾低端浏览器对CSS3的不友好性,往往需要知道某些浏览器是否支持要使用的CSS3属性,以此来做向下适配。比如常见的CSS3动画就很有必要检测浏览器是否支持。下面分享几种方法: - 2016-09-24

任何CSS属性值为percent时,都需要根据某个参考值进行计算,搞明白这个参考值是什么,理解就容易多了。标准规定:background-position:perenct的参考值为: (容器宽度 - 背景图片宽度). - 2016-06-24

CSS3参考手册,全网最新最全的CSS3参考手册,为你呈现最好的CSS3文档CSS3参考手册