CSS 中 margin 的详细用法
发布时间:2011-5-30 21:28:08 浏览次数: 998
你真的了解 margin 吗?你知道 margin 有什么特性吗?你知道什么是垂直外边距合并?margin 在块元素、
内联元素中的区别?什么时候该用 padding 而不是 margin?你知道负 margin 吗?你知道负 margin 在实际
工作中的用途吗?常见的浏览器下 margin 出现的 bug 有哪些?……
写 css,你少不了与 margin 打交道,而对于这个平时我们最常用的 css 属性我们并非十分了解。介于此我
打算写下这篇文章,一来是自己工作中的总结,也是对自己知识的一次梳理。
Margin 是什么
CSS 边距属性定义元素周围的空间。通过使用单独的属性,可以对上、右、下、左的外边距进行设置。
也可以使用简写的外边距属性同时改变所有的外边距。——W3School
边界,元素周围生成额外的空白区。“空白区”通常是指其他元素不能出现且父元素背景可见的区域。——
CSS 权威指南
我比较喜欢使用“外边距”这个词来解释 margin(同理 padding 可以称之为“内边距”,但是我又恰恰喜欢称
呼 padding 为“补白”或者“留白”),我们可以很清楚的了解到 margin 的最基本用途就是控制元素周围空间
的间隔,从视觉角度上达到相互隔开的目的。
Margin 的特性
margin 始终是透明的。
margin 通过使用单独的属性,可以对上、右、下、左的外边距进行设置。即:margin-top、margin-
right、margin-bottom、margin-left。
外边距的 margin-width 的值类型有:auto | length | percentage
也可以使用简写的外边距属性同时改变所有的外边距:margin: top right bottom left;(eg: margin:10px
20px 30px 40px) 记忆方式是元素周围正上方顺时针“上右下左”记忆。
并且规范还提供了省略的数值写法,基本如下:
1、如果 margin 只有一个值,表示上右下左的 margin 同为这个值。例如:margin:10px; 就等于
margin:10px 10px 10px 10px;
2、如果 margin 只有两个值,第一个值表示上下 margin 值,第二个值为左右 margin 的值。例如:
margin:10px 20px; 就等于 margin:10px 20px 10px 20px;
3、如果 margin 有三个值,第一个值表示上 margin 值,第二个值表示左右 margin 的值,第三个值表示下
margin 的值。例如:margin:10px 20px 30px; 就等于 margin:10px 20px 30px 20px;