4-水平+垂直居中总结

水平垂直居中总结

  • 水平居中:

    首先要搞清楚存在两个条件才能够称之为水平居中,即父元素必须是块级盒子容器父元素宽度必须已经被设定好

    ①子元素是块级元素且宽度没有设定:

    ​ 这种情况,子块级默认和父级一样的宽度,所以就相当于已经居中了;如果这个子元素有内容,想让这个内容居中,内容是块级 还是① ,内容是行内元素文本以及行内块元素 跳转到②;

    ②子元素是行内元素文本行内块元素,子元素宽度是由其内容撑开的

    ​ 这种情况下解决方案是给父元素设定text-align:center;

    ③子元素是块级元素且宽度已经设定(已经设定还是没有设定高度都可以用flex)

    ​ 这种情形存在多种解法,下面一一来列举

    -------------给子元素添加margin:0 auto; 行内块设置这个没用,但是可以设置各margin值

    注: 加了浮动和定位(不包括relative) ,margin:x auto 就失效了

    是因为变成行内块了;

    -------------设置子盒子定位;

                position: absolute;
                left:50%;
                margin-left:-子盒子宽度的一半px;
                或者:
                transform: translateX(-50%);
    

    ------------设置flex:

     			display:flex;
                flex-direction: row;
                justify-content:center;
    
  • 垂直居中:

    要讲垂直居中,首先设定两个条件即父元素是盒子容器高度已经设定

    ①子元素是行内元素,高度是由其内容撑开的----针对单行文本:

    ​ 这种情况下,需要通过设定父元素的line-height为其高度来使得子元素垂直居中

    ②子元素是块级元素但是子元素高度没有设定,高度是不继承的

    -----------通过给父元素设定display:table-cell; vertical-align:middle来解决

    -----------通过设置父元素flex:

    			display: flex;
                flex-direction: column;
                justify-content: center;
    

    ③子元素是块级元素且高度已经设定:

    ------------利用绝对定位,让子元素相对于父元素绝对定位

      		position: absolute;
              top:50%;
              margin-left:-子盒子高度的一半px;
              或者:
              transform: translateY(-50%);
    

    ---------------------通过设置父元素flex:

    			display: flex;
                flex-direction: column;
                justify-content: center;
    
  • 水平居中+垂直居中:

    ①单行行内元素:

    ​ 父元素设置:text-align:center,display:table-cell;vertical-align:middle,在这里,图片,文字,都是一样的操作

​ ②单个块级元素,父元素设置为相对定位,子元素设置为绝对定位高度,宽度为50%

​ ③flex实现不定宽度水平+垂直居中设置父盒子

				display: flex;
           		justify-content:center;
           		align-items:center;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值