CSS 教程

CSS 教程 CSS 简介 CSS 语法 CSS 选择器 CSS 如何使用 CSS 注释 CSS 颜色 CSS 背景 CSS 边框 CSS 外边距 CSS 内边距 CSS 高度/宽度 CSS Box 模型 CSS 轮廓 CSS 文本 CSS 字体 CSS 图标 CSS 链接 CSS 列表 CSS 表格 CSS Display CSS Max-width CSS 定位 CSS 溢出 CSS 浮动 CSS Inline-block 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 2D 转换 CSS3 3D 转换 CSS3 过渡 CSS3 动画 CSS3 提示框 CSS3 样式图像 CSS3 object-fit CSS3 按钮 CSS3 分页 CSS3 多列 CSS3 用户界面 CSS3 变量 CSS3 盒子大小 CSS3 媒体查询 CSS3 媒体查询实例 CSS3 弹性盒子

CSS 响应式

RWD 简介 RWD 视口 RWD 网格视图 RWD 媒体查询 RWD 图像 RWD 视频 RWD 框架 RWD 模板

CSS 网格视图

Grid 网络简介 Grid 网格容器 Grid 网格项目

CSS 实例

CSS 模板 CSS 实例 CSS 测验 CSS 练习

CSS 参考手册

CSS 参考手册 CSS 浏览器支持 CSS 选择器 CSS 函数 CSS 网络安全字体 CSS 动画相关属性 CSS 单位 CSS PX-EM 单位转换 CSS 颜色 CSS 颜色值 CSS 默认值 CSS 实体 CSS 听觉


CSS 布局 - 水平和垂直对齐

居中对齐元素

要使块元素(例如 <div> )水平居中,请使用 margin: auto;。

设置元素的宽度将防止其延伸到容器的边缘。

然后,元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配:

这个 div 元素是居中的

实例

.center {
  margin: auto;
  width: 50%;
  border: 3px solid green;
  padding: 10px;
}
亲自试一试 »

注释: 如果未设置 width 属性(或将其设置为 100%),则居中对齐无效。


居中对齐文本

如果仅需在元素内居中文本,请使用 text-align: center;

这段文本是居中的。

实例

.center {
  text-align: center;
  border: 3px solid green;
}
亲自试一试 »

提示: 有关如何对齐文本的更多例子,请参见 CSS 文本 这一章。



居中对齐图像

如需居中图像,请将左右外边距设置为 auto,并将其设置为块元素:

Paris

实例

img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 40%;
}
亲自试一试 »

左和右对齐 - 使用 position

对齐元素的一种方法是使用 position: absolute; :

In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.

实例

.right {
  position: absolute;
  right: 0px;
  width: 300px;
  border: 3px solid #73AD21;
  padding: 10px;
}
亲自试一试 »

注释: 绝对定位的元素将从正常流中删除,并可能出现元素重叠。


左和右对齐 - 使用 float

对齐元素的另一种方法是使用 float 属性:

实例

.right {
  float: right;
  width: 300px;
  border: 3px solid #73AD21;
  padding: 10px;
}
亲自试一试 »

注释: 如果一个元素比包含它的元素高,并且它是浮动的,它将溢出其容器。您可以使用 clearfix hack 来解决此问题(请看下面的例子)。


clearfix hack

没有 Clearfix

使用 Clearfix

然后我们可以向包含元素添加 overflow: auto;,来解决此问题:

实例

.clearfix {
  overflow: auto;
}
亲自试一试 »

垂直对齐 - 使用 padding

有很多方法可以在 CSS 中垂直对齐元素。一个简单的解决方案是使用上下内边距:

我是垂直居中的。

实例

.center {
  padding: 70px 0;
  border: 3px solid green;
}
亲自试一试 »

如需同时垂直和水平对齐,请使用 paddingtext-align: center;

我是水平和垂直居中的。

实例

.center {
  padding: 70px 0;
  border: 3px solid green;
  text-align: center;
}
亲自试一试 »

垂直对齐 - 使用 line-height

另一个技巧是使用其值等于 height 属性值的 line-height 属性:

我是水平和垂直居中的。

实例

.center {
  line-height: 200px;
  height: 200px;
  border: 3px solid green;
  text-align: center;
}

/* 如果文本有多行,添加以下内容: */
.center p {
  line-height: 1.5;
  display: inline-block;
  vertical-align: middle;
}
亲自试一试 »

垂直对齐 - 使用 position 和 transform

如果您的选择不是 paddingline-height,则另一种解决方案是使用 positiontransform 属性:

我是水平和垂直居中的。

实例

.center {
  height: 200px;
  position: relative;
  border: 3px solid green;
}

.center p {
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
亲自试一试 »

提示: 在我们的 2D 转换 一章中,您将了解有关 transform 属性的更多信息。


垂直对齐 - 使用 Flexbox

您还可以使用 flexbox 将内容居中。请注意,IE10 以及更早的版本不支持 flexbox:

我是水平和垂直居中的

实例

.center {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
  border: 3px solid green;
}
亲自试一试 »

提示: 您将在我的 CSS Flexbox 这一章中学到更多关于 Flexbox 的知识。


CSS 习题和测验