随笔 - 33, 文章 - 0, 评论 - 0, 阅读 - 13651

CSS 布局 - 水平和垂直对齐

Posted on   疯狂搬砖人  阅读(342)  评论(0编辑  收藏  举报

居中对齐元素

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

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

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

/*将该块元素居中
*/
.center
{ margin: auto; width: 50%; border: 3px solid green; padding: 20px; }

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

居中对齐图像

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

实例

img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 40%;
}

居中对齐文本

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

text-align 属性用于设置文本的水平对齐方式。

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

下例展示了居中对齐以及左右对齐的文本(如果文本方向是从左到右,则默认为左对齐;如果文本方向是从右到左,则默认是右对齐):

复制代码
h1 {
  text-align: center;
}

h2 {
  text-align: left;
}

h3 {
  text-align: right;
}
复制代码

当 text-align 属性设置为 "justify" 后,将拉伸每一行,以使每一行具有相等的宽度,并且左右边距是直的(就像在杂志和报纸中):

 

div {
  text-align: justify;
}

文本方向

direction 和 unicode-bidi 属性可用于更改元素的文本方向:

复制代码
/*
direction 字方向
unicode-bidi 字的读向
*/
p
{ direction: rtl; unicode-bidi: bidi-override; }
复制代码

左和右对齐 使用 position

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

实例

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

.right {
  position: absolute;
  right: 0px;
  width: 300px;
  border: 3px solid #73AD21;
  padding: 20px;
}

左和右对齐 - 使用 float

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

实例

注意:如果一个元素比包含它的元素高,并且它是浮动的,它将溢出其容器。可以使用 clearfix hack 来解决此问题

.right {
  float: right;
  width: 300px;
  border: 3px solid #73AD21;
  padding: 10px;
}

clearfix Hack

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

实例

.clearfix {
  overflow: auto;
}

垂直对齐vertical-align

vertical-align 属性设置元素的垂直对齐方式。

本例演示如何设置文本中图像的垂直对齐方式:

复制代码
/*
用于设置文本内图片的位置
*/
img.top {
  vertical-align: top;
}

img.middle {
  vertical-align: middle;
}

img.bottom {
  vertical-align: bottom;
}
复制代码

 

垂直对齐 - 使用 padding

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

.center {
  padding: 70px 0;
  border: 3px solid green;
}

如需同时垂直和水平对齐,请使用 padding 和 text-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

如果您的选择不是 padding 和 line-height,则另一种解决方案是使用 position 和 transform 属性:

 

复制代码
/*f*/
.center
{ height: 200px; position: relative; border: 3px solid green; } /*son*/ .center p { margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
复制代码

垂直对齐 - 使用 Flexbox

您还可以使用 flexbox 将内容居中

同时将 justify-content 和 align-items 属性设置为 center 的容器将使项目在中心(在两个轴上)对齐。

.center {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
  border: 3px solid green; 
}
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示