居中对齐元素
要使块元素(例如 <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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具