Css实现居中的方法

1.水平居中text-align:center方式

        text-align:center可以水平居中块级元素中的行内元素,如inline,inline-block;

        但是如果用来居中块级元素中的块级元素时,如div中的div,一旦内层的div有自己的宽度,这种方法就会失效。只能让里面div的文字等内容居中,而div仍然是左对齐的。

       缺点:这种方式不能实现垂直居中:

        1.需要给 div 添加 padding 或 给 div 中的元素添加 margin-top 和 margin-bottom 

  2.设置行高heightline-height的值设置成一样的即可。

2.水平居中margin: 0 auto方式

       这种对齐方式要求内部元素是块级元素

        缺点和第一种方式一样

3.使用display:table-cell方式

        使用 display:table-cell 可以实现水平垂直都居中。

        使用display:table-cell,设置其属性水平居中text-align:center,垂直居中vertical-align:middle使元素居中,这个方式将要对其的元素属性设置成为一个td。

4.使用绝对定位Absolute方式

        设置position:absolute,再设置top,left属性或者bottom,right属性,这个方法需要计算出上下左右属性的值,总体来说不是很优。

5.使用Css3的translate水平垂直居中元素

transform: translate(-50%, -50%); 

这种方式同时支持水平居中和垂直居中

缺点:

(1)CSS transform 需要针对不同的浏览器使用特定的前缀(-moz  或  -o  或  -webkit)

(2)在低版本的IE (IE8 及以下 )中无效

6.使用弹性盒子,display:flex方式

display: flex;
justify-content: center; 
align-items: center; 

设置元素为弹性盒子,及其justify-content,align-items这俩个属性,

7. 使用伪元素居中

 .wrapper {
   width: 300px;
     height: 300px;
     border: 1px solid #ccc;
     text-align: center;
 }
 .wrapper::after {
     content: '';
     display: inline-block;
     vertical-align: middle;
     height: 100%;
 }
 .wrapper > h3 {
     display: inline-block;
     vertical-align: middle;
 }
<div class="wrapper">
   <h3>hellow word</h3>
</div>

该直居中方式的原理主要有以下几个要点:

(1)Css中元素默认是左上方对齐的

(2)伪元素高度与父元素保持统一

(3)父元素基线的位置可改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值