CSS 对齐样式

CSS 对齐样式

在CSS对元素的样式设定中,可以通过设置不同的元素属性来实现对齐的效果。例如文本对齐可以使用text-align,div对齐则可以使用margin属性设置等。

我们常常用到的是水平对齐和居中对齐。

居中对齐样式

要使块元素(例如 <div> )水平居中,可以使用 margin: auto 来设置。

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

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

水平和垂直居中的元素
这个 div 元素是居中的。

示例:

.center {
  margin: auto;
  width: 50%;
  border: 3px solid green;
  padding: 15px;
}

注意: 假如未设置 width 属性(或者设置为 100%),则元素的居中对齐将不起作用。

亲自试一试

文本居中对齐样式

假如仅需在元素内居中对齐文本,可以使用 text-align: center;来设置。

这段文本是居中的。

示例:

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

试一试

图像居中对齐样式

假如需要居中对齐图像,可以将图像的左右外边距设置为 auto,并将其设置为块元素:

CSS 对齐样式
示例:

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

试一试

左对齐和右对齐样式

让元素实现左对齐和有对齐样式,可以通过position以及float等css属性设置方式来实现。

使用 position

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

这个 div 是右对齐的。

 

示例:

.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 来解决此问题(请看下面的例子)。

试一试

clearfix Hack

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

clearfix {
  overflow: auto;
}

试一试

垂直对齐样式

CSS 中有很多方式可以实现垂直居中对齐。 一个简单的方式就是头部顶部使用 padding,另一个就是使用line-height实现。

使用 padding

我是垂直居中。

示例:

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

试一试

使用 line-height

使用line-height的关键是使用其值等于 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

这是第三种方式,这种解决方案是使用 positiontransform 属性:

我是水平和垂直居中的。

示例:

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

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

提示:有关 transform 属性的更多知识,你可以在 2D 转换 教程中学习。

试一试

垂直对齐 – 使用 Flexbox

第四种方式,你还可以使用 flexbox 将内容居中。需要注意,其中IE10 以及更早的版本不支持 flexbox:

我是水平和垂直居中的。

示例:

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

**提示:更多关于 Flexbox 的知识,你可以在CSS Flexbox 这一章中学到。

试一试

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/59542.html

(0)
上一篇 2021年8月9日
下一篇 2021年8月9日

相关推荐

发表回复

登录后才能评论