- CSS 教程
- CSS - 主页
- CSS - 简介
- CSS - 语法
- CSS - 包含
- CSS - 测量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - 边距
- CSS - 列表
- CSS - 填充
- CSS - 光标
- CSS - 轮廓
- CSS - 尺寸
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉菜单
- CSS - 可见性
- CSS - 溢出
- CSS-Clearfix
- CSS-浮动
- CSS - 箭头
- CSS - 调整大小
- CSS - 引号
- CSS - 顺序
- CSS - 位置
- CSS - 连字符
- CSS - 悬停
- CSS - 显示
- CSS - 焦点
- CSS - 缩放
- CSS - 翻译
- CSS - 高度
- CSS - 宽度
- CSS - 不透明度
- CSS - Z 索引
- CSS - 底部
- CSS - 导航栏
- CSS - 叠加
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - 属性选择器
- CSS - 组合器
- CSS-根
- CSS - 盒子模型
- CSS - 计数器
- CSS - 剪辑
- CSS - 书写模式
- CSS - Unicode-bidi
- CSS 高级
- CSS-弹性盒
- CSS - 可见性
- CSS - 定位
- CSS - 层
- CSS - 伪类
- CSS - 伪元素
- CSS - @规则
- CSS - 文本效果
- CSS - 媒体类型
- CSS - 分页媒体
- CSS-听觉媒体
- CSS - 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - 重要
- CSS3 教程
- CSS3 - 教程
- CSS3 - 圆角
- CSS3 - 边框图像
- CSS3 - 多背景
- CSS3 - 颜色
- CSS3 - 渐变
- CSS3 - 阴影
- CSS3 - 文本
- CSS3 - 网页字体
- CSS3 - 二维变换
- CSS3 - 3D 变换
- CSS3 - 动画
- CSS3 - 多列
- CSS3 - 用户界面
- CSS3 - 盒子尺寸
- CSS 响应式
- CSS - 响应式网页设计
- CSS 资源
- CSS - 有用的资源
- CSS - 讨论
CSS - 边距
在 HTML 元素周围设置边距是将 CSS 置于传统 Web 标记之上的原因之一。本文将教你CSS margin属性及其构成属性。
CSS 边距
CSS margin属性是一个简写属性,用于设置 HTML 元素周围的边距区域。假设您想在 h1 元素上设置四分之一英寸的边距,则语法如下:
<html> <head> <style> div { border:1px dotted } h1 { margin: 0.25in; background-color: #eee; } </style> </head> <body> <div> <h1>This h1 element has quarter-inch margin around it!</h1> </div> </body> </html>
您可以使用任何单位设置边距,无论是像素、英寸、毫米还是 em。边距的默认值为 0(零),因此如果您不设置边距值,则元素周围不应出现边距。要设置 h1 元素周围 20 像素的边距,上面的代码将编写如下:
<html> <head> <style> div { border:1px dotted } h1 { margin: 20px; background-color: #eee; } </style> </head> <body> <div> <h1>This h1 element has 20 pixels margin around it!</h1> </div> </body> </html>
CSS 边距 - 单面属性
CSS 提供了四个单独的属性来设置元素的左、右、上、下边距。
- 边距底部
- 顶部边距
- 左边距
- 右边距
以下示例演示了如何在 h1 元素周围设置不同的边距:
<html> <head> <style> div { border:1px dotted } h1 { margin-top: 20px; margin-right:40px; margin-bottom:10px; margin-left:0px; background-color: #eee; } </style> </head> <body> <div> <h1>This h1 element has different margins around it!</h1> </div> </body>
CSS 边距 - 速记属性
您可以使用margin属性将所有边边距设置为不同的值。以下是使用 margin 作为简写属性的语法:
h1 {margin: top right bottom left}
这里的上、右、下、左的值可以是像素、英寸、ems或厘米等。所以使用上面的语法我们可以编写我们之前的HTML代码如下:
<html> <head> <style> div{ border:1px dotted } h1 { margin: 20px 40px 10px 0px; background-color: #eee; } </style> </head> <body> <div> <h1>This h1 element has different margins around it!</h1> </div> </body>
CSS 边距 - 设置三个值:
我们可以将边距设置为三个值:边距 20px 40px 10px,在这种情况下,上边距为 20px,左右边距为 40px,下边距为 10px。以下是示例。您应该尝试将输出与前面的示例进行比较:
<html> <head> <style> div { border:1px dotted } h1 { margin: 20px 40px 10px; background-color: #eee; } </style> </head> <body> <div> <h1>This h1 element has different margins around it!</h1> </div> </body>
CSS 边距 - 设置两个值:
我们可以将边距设置为两个值:边距 20px 40px,在这种情况下,顶部和底部边距将为 20px,左右边距将为 40px。以下是示例。您应该尝试将输出与前面的示例进行比较:
<html> <head> <style> div { border:1px dotted } h1 { margin: 20px 40px; background-color: #eee; } </style> </head> <body> <div> <h1>An h1 element with grey background!</h1> </div> </body>
我们已经看到,为边距设置单个值,会将边距均匀地应用于所有边 - 顶部、右侧、底部和左侧。您可以查看第一个示例来理解这种情况。
CSS 边距 - 混合单位:
CSS 允许混合使用的长度值类型,同时在速记属性中指定不同的边距。您不限于在给定规则中使用单一长度类型,如下所示:
<html> <head> <style> div{ border:1px dotted } h1 { margin: 20px 5em .5in 4ex; background-color: #eee; } </style> </head> <body> <div> <h1>An h1 element with grey background!</h1> </div> </body>
CSS 负边距
CSS 允许为元素指定负边距。这将导致元素的框伸出其父元素或与其他元素重叠。
<html> <head> <style> div { border:1px dotted } h1 { margin: 20px 40px; background-color: #eee; } p { margin: -20px 40px; background-color: #eee; } </style> </head> <body> <div> <h1>An h1 element with grey background!</h1> <p>This paragraph has negative margin.</p> </div> </body> </html>
CSS 边距 - 百分比
很可能为元素的边距设置百分比值。边距百分比值是根据父元素内容区域的宽度计算的,因此如果父元素的宽度发生变化,它们也会发生变化。
<html> <head> <style> h1 { margin:10%; background-color: #eee; } </style> </head> <body> <div style="width: 600px; border: 1px dotted;"> <h1>An h1 element with grey background!</h1> </div> <div style="width: 400px; border: 1px dotted;"> <h1>An h1 element with grey background!</h1> </div>; </body> </html>
CSS 边距 - 内联元素
边距也可以应用于内联元素,但顶部和底部边距对这些非替换元素的行高没有任何影响,并且这些边距始终是透明的。但是,当您将边距应用于内联非替换元素的左侧和右侧时,它将显示如下示例所示的效果。
<html> <head> <style> div { border:1px dotted } strong { margin-top: 25px; margin-bottom: 50px; margin-left: 25px; background-color: #eee; } </style> </head> <body> <div> <p>This text has some <strong>strong text</strong> with grey background</p> </div> </body> </html>
这里,margin-left在突出显示的强文本之前创建了一些额外的空间。我们可以在元素前后创建相同的空间,如下所示:
<html> <head> <style> div { border:1px dotted } strong { margin: 25px; background-color: #eee; } </style> </head> <body> <div> <p>This text has some <strong>strong text</strong> with grey background</p> </div> </body> </html>
CSS 边距 - 自动值
为了使元素在其父元素中居中,请使用margin: 0 auto,如下例所示:
<html> <head> <style> div { width:600px; border:1px dotted } h1 { margin:0 auto; } </style> </head> <body> <div> <h1>An h1 element with center position!</h1> </div> </body> </html>
不过,如果您使用的是旧浏览器,则上面的代码将不起作用,而对于现代浏览器,您应该使用以下代码:
<html> <head> <style> div { width:600px; border:1px dotted } h1 { display: flex; justify-content:center; } </style> </head> <body> <div> <h1>An h1 element with center position!</h1> </div> </body> </html>