关于居中

关于居中:
(1)将margin设置为auto:这种方法只能实现水平居中,并且对float和绝对定位的元素无效(可以实现块状元素的水平居中:我们只需要将它的margin-left和margin-right设置成auto)
在这里插入图片描述
(2)使用text-align:center:只能对图片,按钮,文字等行内元素进行居中
可以实现多个块状元素的水平居中(将水平排列的元素设置为display:inline-block,然后在父元素上设置:text-align:center)

#container{
    text-align:center;
}
 
#center{
    display:inline-block;
}

在这里插入图片描述

(3)使用line-height让一行的文字居中:将line-height的高度设置为父容器的高度,适用于文字只有一行的情况
(4)对于表格元素的居中,只需要使用text-align:center和vertical-align:middle就可以处理它里面内容的水平和垂直居中问题了
(5)使用display:table-cell:对于那些不是表格的元素,我们可以把它模拟成表格元素,这样就可以方便的利用表格的那些特性啦,这种方法只能在IE8+,谷歌,firefox上有效
应用场景:被居中的元素是inline或者是inline-block的时候,可以将父容器设置为display:table-cell,然后使用text-align:center和vertical-align:middle

#container{
    display:table-cell;
    text-align:center;
    vertical-align:middle;
}
 
#center{
 
}

在这里插入图片描述

(6)使用绝对定位和负margin来实现居中
这种方式需要知道自身的宽高

<div class="parent">
<div class="child">
</div>
</div>

.parent {
width: 200px;
height: 200px;
border: 1px solid red;
position: relative;
}
.child {
width: 100px;
height: 100px;
background: lightcoral;
position: absolute;
margin: -50px 0 0 -50px ;
top: 50%;
left: 50%;
}

在这里插入图片描述

(7)使用绝对定位加margin(无需知道被定位元素的宽高,也无需知道父元素的宽高)

<div class="parent6">
<div class="child6"></div>
</div>


.parent6{
position: relative;
height: 300px;
width: 300px;
background-color: #ADD8E6
}
.child6{
width: 100px;
height: 100px;
margin: auto;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: orange
}

在这里插入图片描述

(8)使用transform加绝对定位

<div class="parent1">
<div class="child1"></div>
</div>

.parent1 {
width: 300px;
height: 300px;
background: lightblue;
position: relative;
}
.child1 {
background: orange;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 200px;
height: 200px;
}

在这里插入图片描述

使用绝对定位加transform,可以不用知道父元素的宽高
也不用知道自身的尺寸,因为transform中translate偏移的百分比就是相对于元素自身尺寸而言的

如果只想设置垂直居中,那么可以只设置top:50%,然后transform:translate(-50%,0)
同样的,如果只是想设置水平居中的话,就可以只设置left:50%,然后transform:translate(0,-50%)

(8)使用flex布局(需要考虑兼容性问题 IE11+,chrome29+,firefox28+)

<div class="parent3">
<div class="child3"></div>
</div>


.parent3 {
width: 300px;
height: 300px;
background: lightblue;
display: flex;
align-items: center;  //垂直居中
justify-content: center;  //水平居中
}
.child3 {
width: 100px;
height: 100px;
background: orange;
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值