千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 深入解析absolute居中

深入解析absolute居中

来源:千锋教育
发布人:xqq
时间: 2023-11-23 15:39:15 1700725155

一、基本概念

absolute是CSS中的一种定位方式,其作用在于将元素从文档流中拖离出来,并相对于最近的positioned祖先元素进行绝对定位,此时元素的left、top、right、bottom属性决定了元素相对于父元素的位置。而absolute居中,就是利用这种定位方式将元素水平居中或者垂直居中。

二、水平居中

实现水平居中最简单的方式是,将父元素的position属性设置为relative或static,将子元素的position属性设置为absolute,然后将子元素的left和right属性都设置为0,并且设置子元素的宽度。示例代码如下:


.parent{
  position:relative;
}
.child{
  position:absolute;
  left:0;
  right:0;
  margin:auto;
  width:100px;
}

上述代码中,child元素的left:0和right:0让它与parent元素左右两侧对齐,而margin:auto则将其水平居中。需要注意的是,这种方式需要确定子元素的宽度,并且要求父元素的宽度必须大于等于子元素的宽度。

另一种实现水平居中的方式是,将父元素的display属性设置为flex,然后将其子元素的margin属性设置为auto。示例代码如下:


.parent{
  display:flex;
  justify-content:center; /* 横轴居中*/
}
.child{
  margin:auto;
  width:100px;
}

通过将父元素的display属性设置为flex,并使用justify-content:center将子元素横轴居中,再将子元素的margin属性设置为auto,即可实现水平居中。需要注意的是,这种方式不需要指定子元素的宽度。

三、垂直居中

实现垂直居中的方式也有多种,我们先介绍一种比较通用的方式,即通过transform: translate()属性实现。示例代码如下:


.parent{
  position:relative;
}
.child{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:100%;
}

上述代码中,child元素的top:50%将其放置在父元素的中间位置,而transform: translateY(-50%)将其向上移动其自身高度的一半,从而实现垂直居中。需要注意的是,这种方式需要确定子元素的高度,并且要求父元素的高度必须大于等于子元素的高度。

另一种实现垂直居中的方式是,将父元素的display属性设置为flex,然后将其子元素的align-items属性设置为center。示例代码如下:


.parent{
  display:flex;
  align-items:center; /* 纵轴居中*/
}
.child{
  width:100%;
}

通过将父元素的display属性设置为flex,并使用align-items:center将子元素纵轴居中,即可实现垂直居中。需要注意的是,这种方式不需要指定子元素的高度。

四、水平垂直居中

实现水平垂直居中有两种方式,一种是将以上两种方式结合使用,另一种是使用CSS Grid布局。下面我们先介绍第一种方式,即结合transform和flex布局的方式。示例代码如下:


.parent{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
}
.child{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:100px;
  height:100px;
}

上述代码中,父元素的display属性设置为flex,同时使用justify-content:center和align-items:center分别实现子元素的水平居中和垂直居中,而子元素则使用top:50%和left:50%将其放置在父元素的中间位置,然后通过transform:translate(-50%,-50%)将其向上移动自身高度和宽度的一半,从而实现水平垂直居中。

另一种方式是使用CSS Grid布局,示例代码如下:


.parent{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.child{
  width:100px;
  height:100px;
}

上述代码中,通过将父元素的display设置为grid,并使用place-items:center让子元素在父元素的中间位置,即可实现水平垂直居中。需要注意的是,这种方式需要确定父元素的宽度和高度。

五、总结

本文通过介绍absolute居中的多种实现方式,包括基本概念、水平居中、垂直居中、水平垂直居中等,希望对读者对CSS布局有一定的了解和掌握。当然,以上只是提供了一些常用的方式,在实际项目中还需要结合具体情况选择相应的方式。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT