css元素居中的方式

在我们日常编写代码中,有各种各样的编写方式,其中,“元素居中” 占据很重要的地位,今天,我把 CSS 元素居中都罗列一下,自己复习方便,大家也都可以学习一下。

1、文字居中 text-algin:center;

用text-algin实现居中效果

这里添加的文字的是p标签 ,通过使用 text-algin 属性让中间文字居中对齐 实现的代码

<div class="fater">
        <p class="child">
            文本居中
        </p>
    </div>

    
   .fater{
        width: 200px;
        height: 200px;
        border: 1px solid black;
    }
    .child{
        width: 200px;
        height: 100px;
        border: 1px solid red;
        text-align: center;
        line-height: 100px;;
   }

代码实现效果:
文本居中

2、通过使用vertical-algin:center,来达到居中效果;

在内联元素这一类里面:有个特殊的元素 inline-block;而行类块元素支持使用vertical-algin属性,它的属性值:
top (顶线对齐)
middle(中线对齐)
bottom(底线对齐)
baseline(基线对齐)
分析:这里让元素居中的就是添加一个“标尺”,通过标尺来确定顶线,中线,底线,基线,而这里通过使用 display:inline-block,改变元素类型,而span便是那个标尺。
注意:p标签 和 span 标签之间不能有空格,要不然两者之间会有几像素差,会影响元素居中。
下面展示一些 实现的代码

 <div class="box">
        <p></p><span></span>
    </div>    
  .box{
      width: 400px;
      height: 300px;
      background: orange;
      text-align: center;
      margin: 50px auto;
  }
  .box p{
      height: 100px;
      width: 100px;
      background: blue; 
      display: inline-block; /*因为要添加vertical-align: middle;,这个元素只对inline-block */
      vertical-align: middle;
  }
  .box span{
      /* 确定中线 */
      width: 0px;
      height: 100%;
      background: red;
      display: inline-block;
      vertical-align: middle;
  }

代码实现效果:
在这里插入图片描述

3、使用外边距 margin,让元素处于居中的位置;

用margin实现居中效果

在margin中有一个属性值为 auto,这个属性值的作用就是用来水平居中显示,上下居中可以通过计算来达到上下左右居中,下面的代码中:父元素height:200px,子元素height:100px;那么,子元素距父元素上下均为50px状态处于居中下面展示一些 实现的代码

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

    
     .fater{
        width: 300px;
        height: 200px;
        border: 1px solid black;
    }
    .child{
        width: 200px;
        height: 100px;
        border: 1px solid red;
        margin: 50px auto;/*居中显示*/
    }

代码实现效果:
在这里插入图片描述

4、使用内边距padding,让元素处于居中的位置;

用padding实现居中效果

padding是内边距,它不可以为负值,让元素居中状态,通过设置 padding值来达到效果,注意:padding值设置多少,相应的宽高也要减多少,前提是这个元素宽高是有值的状态,没有值就不用减!实现的代码

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

    
         .fater{
        /*
        width:300px;
        height:200px; 添加 padding,要在相应的宽高减50px;
        */
        width: 250px;
        height: 150px;
        border: 1px solid black;
        padding-top: 50px; /*距顶部50px*/
        padding-left: 50px;/*距左边50px*/
    }
    .child{
        width: 200px;
        height: 100px;
        border: 1px solid red;
    }

代码实现效果:
在这里插入图片描述

5、使用定位position来让元素居中

定位是我们经常使用的属性,他可以来调整我们元素的位置,但是定位也不轻易使用,容易影响网页的布局
第一方式:通过top ,left,bottom,right 的值来改变位置
实现的代码

 <div class="fater">
        <div class="child">
        </div>
    </div>
   
        .fater{
        width:300px;
        height:200px; 
        background:  black;
        position: relative;
    }
    .child{
        width: 200px;
        height: 100px;
        background:  red;
        position: absolute;
        top: 50px;
        left: 50px;
    }

代码实现效果:
在这里插入图片描述
第二种方式:top,bottom,right,left,都为0,使用margin来居中,
实现的代码

<div class="fater">
       <div class="child">
       </div>
   </div>
  
    .fater{
        width:300px;
        height:200px; 
        background:  lawngreen;
        position: relative;
    }
    .child{
        width: 200px;
        height: 100px;
        background:  red;
        position: absolute;
        top: 0;bottom: 0;
        left: 0;right: 0;
        margin: auto;
    }

代码实现效果:
在这里插入图片描述
第三种方式:使用transform来让元素居中
注: top: 50%; left: 50%,只是让子元素的左上角为目标,左上角处于居中位置,但是我们希望让子元素中心点处于居中状态,那么,transform:translate(-50%,-50%);便可以满足我们的需求。
实现的代码

<div class="fater">
       <div class="child">
       </div>
   </div>
  
    .fater{
        width:300px;
        height:200px; 
        background:  lawngreen;
        position: relative;
        margin: 20px auto;
    }
    .child{
        width: 200px;
        height: 100px;
        background:  red;
        position: absolute;
        top: 50%;
        left: 50%;
        transform:translate(-50%,-50%);
    }

代码实现效果:
在这里插入图片描述

6、弹性盒子居中对齐;

这里使用弹性盒子让子元素居中对齐,其中 justify-content: center;水平居中;
align-items: center;垂直居中,两者相结合,让子元素在父元素中间显示,
实现的代码

<div class="box">
        <div class="box1"></div>
    </div>
    
    .box{
        width: 500px;
        height: 400px;
        background: black;
        margin: 50px auto;
        display: flex;
        justify-content: center; /*水平居中*/
        align-items: center; /*垂直居中*/
    }
    .box1{
        width: 300px;
        height: 200px;
        background: red;
    }

代码实现效果:
在这里插入图片描述
第二种方式:直接给子元素添加一个 margin:auto;

<div class="box">
        <div class="box1"></div>
    </div>
    
    .box{
        width: 500px;
        height: 400px;
        background: black;
        display: flex; /*弹性盒*/
    }
    .box1{
        width: 300px;
        height: 200px;
        background: red;
        margin: auto; /*居中对齐*/
    }

代码实现效果:
在这里插入图片描述

7、2D位移方式让元素居中对齐;

在2D的属性中有一种属性,transform:translate(x轴,y轴),这个位移属性,可以更改元素的位置,通过二维坐标,来调整位置达到元素居中效果。
实现的代码

<div class="father">
    <div class="child"></div>
</div>
    
    .father{
        width: 300px;
        height: 300px;
        background: black;
    }
    .child{
        width: 100px;
        height: 100px;
        background: gray;
        transform: translate(100px,100px);
    }

代码实现效果:
在这里插入图片描述
以上便是我脑子出现的方法,后续有方法继续添加!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值