网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4219|回复: 0
打印 上一主题 下一主题

CSS中级-6 CSS 布局-对齐

[复制链接]

354

主题

355

帖子

1464

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1464
跳转到指定楼层
楼主
发表于 2023-12-22 08:12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CSS 布局 - 水平和垂直对齐元素居中                              居中对齐元素
要使块元素(例如 <div> )水平居中,请使用 margin: auto;。
设置元素的宽度将防止其延伸到容器的边缘。
然后,元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配:
这个 div 元素是居中的。
实例.center {  margin: auto;  width: 50%;  border: 3px solid green;  padding: 20px;}
注意:如果未设置 width 属性(或将其设置为 100%),则居中对齐无效。
居中对齐文本
如果仅需在元素内居中文本,请使用 text-align: center;:
实例.center {  text-align: center;  border: 3px solid green;}
提示:有关如何对齐文本的更多例子,请参见 CSS文本 这一章。
居中对齐图像
如需居中图像,请将左右外边距设置为 auto,并将其设置为块元素:
实例img {  display: block;  margin-left: auto;  margin-right: auto;  width: 40%;}
左和右对齐 - 使用 position
对齐元素的一种方法是使用 position: absolute; :
实例.right {  position: absolute;  right: 0px;  width: 300px;  border: 3px solid #73AD21;  padding: 20px;}
注意:绝对定位的元素将从正常流中删除,并可能出现元素重叠。
左和右对齐 - 使用 float
对齐元素的另一种方法是使用 float 属性:
实例.right {  float: right;  width: 300px;  border: 3px solid #73AD21;  padding: 10px;}
注意:如果一个元素比包含它的元素高,并且它是浮动的,它将溢出其容器。您可以使用 clearfix hack 来解决此问题(请看下面的例子)。
clearfixHack
然后我们可以向包含元素添加 overflow: auto;,来解决此问题:
实例.clearfix {  overflow: auto;}
垂直对齐 - 使用 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 属性:
实例.center {   height: 200px;  position: relative;  border: 3px solid green; } .center p {  margin: 0;  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);}

垂直对齐 - 使用 Flexbox
您还可以使用 flexbox 将内容居中。请注意,IE10 以及更早的版本不支持 flexbox:
实例.center {  display: flex;  justify-content: center;  align-items: center;  height: 200px;  border: 3px solid green; }

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-4-28 13:22 , Processed in 0.055866 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表