CSS margin 属性

设置外边距的最简单的方法就是使用 margin 属性。

margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。

margin 可以设置为 auto。更常见的做法是为外边距设置长度值。下面的声明在 h1 元素的各个边上设置了 1/4 英寸宽的空白:

h1 {margin : 0.25in;}

下面的例子为 h1 元素的四个边分别定义了不同的外边距,所使用的长度单位是像素 (px):

h1 {margin : 10px 0px 15px 5px;}

与内边距的设置相同,这些值的顺序是从上外边距 (top) 开始围着元素顺时针旋转的:

margin: top right bottom left

另外,还可以为 margin 设置一个百分比数值:

p {margin : 10%;}

百分数是相对于父元素的 width 计算的。上面这个例子为 p 元素设置的外边距是其父元素的 width 的 10%。

margin 的默认值是 0,所以如果没有为 margin 声明一个值,就不会出现外边距。但是,在实际中,浏览器对许多元素已经提供了预定的样式,外边距也不例外。例如,在支持 CSS 的浏览器中,外边距会在每个段落元素的上面和下面生成“空行”。因此,如果没有为 p 元素声明外边距,浏览器可能会自己应用一个外边距。当然,只要你特别作了声明,就会覆盖默认样式。

值复制

还记得吗?我们曾经在前两节中提到过值复制。下面我们为您讲解如何使用值复制。

有时,我们会输入一些重复的值:

p {margin: 0.5em 1em 0.5em 1em;}

通过值复制,您可以不必重复地键入这对数字。上面的规则与下面的规则是等价的:

p {margin: 0.5em 1em;}

这两个值可以取代前面 4 个值。这是如何做到的呢?CSS 定义了一些规则,允许为外边距指定少于 4 个值。规则如下:

  • 如果缺少左外边距的值,则使用右外边距的值。
  • 如果缺少下外边距的值,则使用上外边距的值。
  • 如果缺少右外边距的值,则使用上外边距的值。

下图提供了更直观的方法来了解这一点:

换句话说,如果为外边距指定了 3 个值,则第 4 个值(即左外边距)会从第 2 个值(右外边距)复制得到。如果给定了两个值,第 4 个值会从第 2 个值复制得到,第 3 个值(下外边距)会从第 1 个值(上外边距)复制得到。最后一个情况,如果只给定一个值,那么其他 3 个外边距都由这个值(上外边距)复制得到。

利用这个简单的机制,您只需指定必要的值,而不必全部都应用 4 个值,例如:

h1 {margin: 0.25em 1em 0.5em;} /* 等价于 0.25em 1em 0.5em 1em */
h2 {margin: 0.5em 1em;}     /* 等价于 0.5em 1em 0.5em 1em */
p {margin: 1px;}            /* 等价于 1px 1px 1px 1px */

这种办法有一个小缺点,您最后肯定会遇到这个问题。假设希望把 p 元素的上外边距和左外边距设置为 20 像素,下外边距和右外边距设置为 30 像素。在这种情况下,必须写作:

p {margin: 20px 30px 30px 20px;}

这样才能得到您想要的结果。遗憾的是,在这种情况下,所需值的个数没有办法更少了。

再来看另外一个例子。如果希望除了左外边距以外所有其他外边距都是 auto(左外边距是 20px):

p {margin: auto auto auto 20px;}

同样的,这样才能得到你想要的效果。问题在于,键入这些 auto 有些麻烦。如果您只是希望控制元素单边上的外边距,请使用单边外边距属性。

单边外边距属性

您可以使用单边外边距属性为元素单边上的外边距设置值。假设您希望把 p 元素的左外边距设置为 20px。不必使用 margin(需要键入很多 auto),而是可以采用以下方法:

p {margin-left: 20px;}

您可以使用下列任何一个属性来只设置相应上的外边距,而不会直接影响所有其他外边距:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left

一个规则中可以使用多个这种单边属性,例如:

h2 {margin-top: 20px;margin-right: 30px;margin-bottom: 30px;margin-left: 20px;}

当然,对于这种情况,使用 margin 可能更容易一些:

p {margin: 20px 30px 30px 20px;}

不论使用单边属性还是使用 margin,得到的结果都一样。一般来说,如果希望为多个边设置外边距,使用 margin 会更容易一些。不过,从文档显示的角度看,实际上使用哪种方法都不重要,所以应该选择对自己来说更容易的一种方法。

提示和注释

提示:Netscape 和 IE 对 body 标签定义的默认边距(margin)值是 8px。而 Opera 不是这样。相反地,Opera 将内部填充(padding)的默认值定义为 8px,因此如果希望对整个网站的边缘部分进行调整,并将之正确显示于 Opera 中,那么必须对 body 的 padding 进行自定义。

CSS margin 属性简介相关推荐

  1. css margin属性,css margin属性怎么用?css margin属性用法教程

    在css中,有一个重要的属性margin,很多人都不知道css margin属性是什么?怎么用,下面为您总结一下css margin属性用法教程. margin是css用于在一个声明中,对所有css ...

  2. CSS margin属性详解

    CSS margin属性详解 我发现当我想写好一篇博文的时候,希望以后能有人看到,会对别人也有一定的帮助,这时候对于其中的内容就变得深思熟虑起来,让自己查阅尽可能多的资料,这样的方式正好可以弥补我某些 ...

  3. html中align属性的justify,css text-align属性简介说明

    摘要: 下文讲述css属性text-align的功能简介说明,如下所示: css text-align属性功能说明 css text-align属性功能: 设置html标签中内容的水平对齐方式 tex ...

  4. css margin属性 auto,css中margin:auto属性的使用方法

    css中margin:auto属性的使用方法 发布时间:2020-06-25 10:53:17 来源:亿速云 阅读:221 作者:Leah 今天就跟大家聊聊有关css中margin:auto属性的使用 ...

  5. CSS盒模型( CSS margin 属性)

    常见的图片 怎样理解呢看下面例如 ' 设置的属性如下 .mian_one{width: 500rpx;height: 500rpx;background: #00d8a0;}.main_two{wid ...

  6. [HTML/CSS]margin属性用法

    概述 在一些小的项目中,前台样式还是需要自己来写的,这时候,margin在布局中还是有一定的地位的.上篇文章中介绍的盒子模型中,就有margin的存在. margin margin可以用来设置css块 ...

  7. css透明度属性简介

    一.透明度设置 opacity 用法: opaticy:0-1; 2.rgba 用法: rgba:(0-255,0-255,0-255,0-1) 透明度取值均为0-1之间.其中,0代表完全透明,1代表 ...

  8. CSS margin 属性详解

    设置 p 元素的 4 个外边距: p{margin:2cm 4cm 3cm 4cm;} 定义和用法 margin 简写属性在一个声明中设置所有外边距属性.该属性可以有 1 到 4 个值. 说明 这个简 ...

  9. php怎么设置段落之间的距离,css如何设置段落间距?margin 属性设置段落间距(代码实例)...

    段落间距是网页设计里一个提升文章阅读体验的重要因素.但网页排版不想Word那样简单,而作为网页设计师,为了读者的良好阅读体验,我们必须为文章的每个小标题和段落都预留一定的空间,用css有效率地设置段落 ...

最新文章

  1. hashmap实现原理_Java中HashMap底层实现原理(JDK1.8)源码分析
  2. android 打包出现错误Error: ResourceName
  3. 腾讯2020校园招聘----覆盖
  4. python 支付宝支付 无效根证书_Python-支付宝SDK的使用与注意事项,pythonalipaysdk,及,点...
  5. java get请求 数组,浅谈vue中get请求解决传输数据是数组格式的问题
  6. 某大型银行深化系统之十八:性能设计之三
  7. 魔法方法——Python
  8. Android LowMemoryKiller ADJ原理
  9. 在linux中 清屏命令是,急!请问linux下的清屏命令是什么!
  10. 3.修改和编译XposedBridge.jar 和 api.jar
  11. atitit.自己动手开发编译器and解释器(2) ------语法分析,语义分析,代码生成--attilax总结
  12. 软件开发的11种模式
  13. ACDSee 10中文版+注册码
  14. 接口自动化-get/post接口详解
  15. 计算机模拟求解流体力学方程,计算流体力学模拟(CFD模拟)FLUENT中的湍流模型(一)...
  16. cisco MSDP配置指南
  17. 局部搜索(爬山法+模拟退火+遗传算法)
  18. BICC协议(简介)
  19. 环信多人音视频会议功能实现
  20. 怎样搭建自己的网站,如何利用花生壳建立个人简易静态网站?

热门文章

  1. oracle启动监听读取哪个文件,监听服务启动及数据文件恢复oracle数据库
  2. 最简单的控制台登录小案例,适合初学者
  3. 基准软件测试原理,基准测试
  4. leetcode235. 二叉搜索树的最近公共祖先
  5. C++:29 --- C++继承关系下的内存布局(下)
  6. 用awk一些常用技巧sort uniq
  7. Linux(10)--上一级路径、nano、切换su、查看用户、修改目录的读写权限
  8. PCB布局,布线技巧总结
  9. 《基于Java实现的遗传算法》笔记(7 / 7):个人总结
  10. 2013驾考科目三考试难点解析