美文网首页我爱编程
#05你认真学了css?元素居中

#05你认真学了css?元素居中

作者: 饥人谷_远方 | 来源:发表于2018-08-09 14:54 被阅读0次

    一、元素水平居中

    1、text-align

    text-align:center;行内元素(图片或文字)居中
    在父元素上设置text-align: center 使文字/图片在整个页面上水平居中

     .container{
        text-align:center;
    }
    

    如一小选项按钮居中,可以使用:

     .container{
        display:inline-block;
        text-align:center;
    }
    

    2、margin

    margin: 0 auto; 用于块级元素的居中

    .container {
       width: 80%;  /*块级元素充满页面 定宽必备 */
       margin-left: auto;
       margin-right: auto;
      /*或者 margin:0 auto;*/
    }
    

    如:
    块级元素居中

    代码如下:

     <style>
         .wrap{
           max-width:600px;
           background: #ccc;
           margin: 0 auto;
         }
    
      </style>
    </head>
    
      <div class="wrap">
        <h1>hello</h1>
        <p>world</p>
      </div>
    
    image

    二、元素垂直居中

    1、居中 VS 不居中

    注:高度由里面的内容撑开,一般不设置高度

    代码如下:

     <style>
    .ct{
      padding: 40px 0;
      text-align: center; 
      background: #eee;
    }
     </style>
    
    <div class="ct">
        <p>你好世界</p>
        <p>helloworld</p>
      </div>
    
    image

    2、vertical-align实现居中

    vertical-align: middle; 让行内元素或表格元素相对于基线对齐并居中

    案例:如图片进行水平、垂直居中

    代码如下:图片在容器内水平、垂直居中

    <style>
    .box{
      width: 300px;
      height: 200px;
      border: 1px solid ;
      text-align: center;
    }
    /*注:子元素和父元素分别设置 vertical-align:middle;  ,均无法实现垂直居中*/
    
    /*使用一个伪元素,设置一个虚拟的基准线*/
    .box:before{
      content: '';
      display: inline-block;
      height: 100%;
      vertical-align: middle;     ✔️
    }
    .box img{
      vertical-align: middle;     ✔️
      background: blue;
    }
    </style>
    
     <div class="box">
        <img src="http://cdn.jirengu.com/public/logo-tiny.png" alt="">
      </div>
    
    image

    3、table-cell 实现居中

    display: table-cell;水平垂直居中

    代码如下:

    <style>
    .box{
      width: 300px;  /*由于是行内元素,宽度必备*/
      height: 200px;
      border: 1px solid ;
      display: table-cell;     ✔️
      vertical-align: middle;  ✔️ 
      text-align: center;
    }
    </style>
    
     <div class="box">
        <img src="http://cdn.jirengu.com/public/logo-tiny.png" alt="">
      </div>
    

    4、绝对定位实现居中

    案例:如弹出框 弹出框水平垂直居中

    情况1:固定宽高块在浏览器窗口水平垂直居中,

    代码如下:

    <style>
    html,body {
      height: 100%;
    }
    .dialog {
      position: absolute;  /*绝对定位*/
      left: 50%;
      top: 50%;
      margin-left: -200px;
      margin-top: -150px;
    
      width: 400px;
      height: 300px;
      box-shadow: 0px 0px 3px #000;
    }
    
    .dialog .header{
      padding: 10px;
      background: #000;
      color: #fff;
    }
    .dialog .content{
      padding: 10px;
    }
    </style>
    
      <div class="dialog">
        <div class="header">我是标题</div>
        <div class="content">我是内容</div>
      </div>
    
    image

    情况2: 去掉宽高的块在浏览器窗口水平垂直居中,

    代码如下:

    <style>
    html,body {
      height: 100%;
    }
    
    .dialog {
      position: absolute;
      left: 50%;
      top: 50%;
     /*  margin-left: -200px;
      margin-top: -150px; */
    
      /*CSS3属性  相对于自己的偏移*/
      transform:translate(-50%,-50%);
      box-shadow: 0px 0px 3px #000;
    }
    
    .dialog .header{
      padding: 10px;
      background: #000;
      color: #fff;
    }
    .dialog .content{
      padding: 10px;
    }
    </style>
    
      <div class="dialog">
        <div class="header">我是标题</div>
        <div class="content">我是内容</div>
        <div class="content">我是内容</div>
        <div class="content">我是内容</div>
        <div class="content">我是内容</div>
      </div>
    
    image

    相关文章

      网友评论

        本文标题:#05你认真学了css?元素居中

        本文链接:https://www.haomeiwen.com/subject/mazqbftx.html