css实现元素居中

水平居中一个块元素

给该元素设置宽高,然后添加属性margin: 0 auto;

绝对定位的div居中

postion:absolute;top:0;left:0;bottom:0;right:0;margin:auto;

水平垂直居中

//方法一:
    postion:absolute;width:(x)px;height:(y)px;left:50%;top:50%;margin:-(x/2)px 0 0 -(y/2)px;

//方法二:
    //未知容器宽高,用transform属性。
    position: absolute;width: (x)px;height: (y)px;top: 50%;left: 50%;-webkit-transform: translate(-50%,-50%);

//方法三:
    //使用flex布局
    .container {display:flex;align-item:center;justify-content:center;}
    <div class='container'>
        <div></div>
        <div></div>
        <div></div>
    </div>

元素水平居中

  • 如果是行内元素,给其父元素设置text-align:center,即可实现行内元素水平居中
  • 如果是块级元素,给该元素设置margin: 0 auto
  • 如果子元素包含float:left属性,则给父元素宽度添加属性fit-content,并配合margin使用
  • 使用flex 2012年版本布局, 可以轻松的实现水平居中, 子元素设置: display: flex;justify-content: center;
  • 使用flex 2009年版本, 父元素display: box;box-pack: center;box-orient: horizontal;
  • 使用CSS3中新增的transform属性, 子元素设置:position:absolute;left:50%; transform:translate(-50%,0);
  • 使用绝对定位方式, 以及负值的margin-left, 子元素设置: position:absolute;width:固定;left:50%;margin-left:-0.5宽度;
  • 使用绝对定位方式, 以及left:0;right:0;margin:0 auto; 子元素设置如下:.son{position:absolute;width:固定;left:0;right:0; margin:0 auto;}

元素垂直居中

1,若元素是单行文本, 则可设置 line-height 等于父元素高度;
2,若元素是行内块级元素, 基本思想是使用display: inline-block, vertical-align:middle和一个伪元素让内容块处于容器中央
            .parent::after, .son{
                display:inline-block;
                vertical-align:middle;
            }
            .parent::after{
                content:'';
                height:100%;
            }
3,如果元素高度不确定,可用 vertical-align 属性, 而vertical-align只有在父层为 td 或者 th 时, 才会生效, 对于其他块级元素, 例如 divp 等, 默认情况是不支持的. 为了使用vertical-align, 我们需要设置父元素display:table, 子元素 display:table-cell;vertical-align:middle;
4,如果元素高度不确定,可用 transform , 设置父元素相对定位(position:relative), 子元素如下css样式:
            .son{
                position:absolute;
                top:50%;
                -webkit-transform: translate(-50%,-50%);  
                -ms-transform: translate(-50%,-50%);
                transform: translate(-50%,-50%);
            }
5,如果元素高度不确定,使用flex 2009版
            .parent {
                  display: box;
                  box-orient: vertical;
                  box-pack: center;
            }
6,如果元素高度确定, 设置父元素相对定位(position:relative), 子元素如下css样式:
            .son{
                position:absolute;
                top:50%;
                height:固定;
                margin-top:-0.5高度;
            }
7,如果元素高度确定,设置父元素相对定位(position:relative), 子元素如下css样式:
            .son{
                position:absolute;
                height:固定;
                top:0;
                bottom:0;
                margin:auto 0;
            }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值