css居中

作者: 注定只是过客 | 来源:发表于2019-04-24 16:58 被阅读0次

    水平居中

    1.行内或者具有行内元素性质的元素(比如文字或者链接)

    父元素为块级元素,子元素为行内或者具有行内元素性质的元素,可以使用text-align: center;

    2.单个块级元素

    设置块级元素的 margin-left 和 margin-right 为 auto 来使它水平居中(width 属性必须被设置,否则它会占满宽度)。代码:
    margin: 0 auto;

    垂直居中

    1.行内或者具有行内元素性质的元素(比如文字或者链接)
    单行

    我们可以设置上下内边距padding相同,或者line-height和height的值相等。

    多行

    -父元素高度确定的单行文本(内联元素) 设置 height = line-height;
    -父元素高度确定的多行文本(内联元素)a:插入 table (插入方法和水平居中一样),然后设置vertical-align:middle;b:先设置 display:table-cell 再设置 vertical-align:middle;

    2.块级元素
    2.1知道块级元素的高度
    .parent {
      position: relative;
    }
    .child {
      position: absolute;
      top: 50%;
      height: 100px;
      margin-top: -50px; /* account for padding and border if not using box-sizing: border-box; */
    }
    
    2.2元素高度未知

    可以通过 transform 来达到目的:

    .parent {
      position: relative;
    }
    .child {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
    }
    

    垂直水平居中

    3.1元素有固定的宽和高

    用负的 margin 值使其等于宽度和高度的一半,当你设置了它的绝对位置为 50% 之后,就会得到一个跨浏览器支持的居中:

    .parent {
      position: relative;
    }
    
    .child {
      width: 300px;
      height: 100px;
      padding: 20px;
    
      position: absolute;
      top: 50%;
      left: 50%;
    
      margin: -70px 0 0 -170px;
    }
    
    3.2元素的宽和高未知

    如果不知道元素的高度和宽度,可以用 transform 属性,用 translate 设置 -50%(它以元素当前的宽和高为基础)来居中:

    .parent {
      position: relative;
    }
    .child {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    

    相关文章

      网友评论

          本文标题:css居中

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