美文网首页
CSS居中总结

CSS居中总结

作者: 胡不归vac | 来源:发表于2017-05-20 15:27 被阅读41次

原文

absolute centering

  • html
  <div class="container">
    <div class="content">
      // Content
    </div>
  </div>
  • css
  .container {
      position: relative;
  }
  .content {
      position: absolute;
      margin: auto;
      top: 0; left: 0; bottom: 0; right: 0;
  }

注意: 当没有指定内容块的具体的高度和宽度时,内容块会填满剩余空间。可以通过使用max-height来限制高度,也可以通过 display:table 来使高度由内容来决定,但是浏览器支持不是很好。

  • Not compatible with the Resizing technique.
  • Firefox/IE8: Using display: table aligns the content block to the top, but is still centered horizontally.
  • IE9/10: Using display: table aligns the content block to the top left.
  • Mobile Safari: The content block is centered vertically, but becomes slightly off-center horizontally when using percentage based widths.

Negative margins

  • html
  <div class="isNegative">
    //Content
  </div>
  • css
  .isNegative {
      position: relative;
      width: 200px;
      height: 300px;
      left: 50%;
      top: 50%;
      margin-left: -100px;
      margin-top: -150px;
  }

缺点:需要知道具体的高度和宽度

Transform

  .content {
      position: relative;
      left: 50%;
      top: 50%;
      -webkit-transform: translate(-50%,-50%);
        -ms-transform: translate(-50%,-50%);
            transform: translate(-50%,-50%);
  }

这里translate的百分比是相对于自身的,所以高度是可变的

Table-Cell

  • html
  <div class="Center-Container is-Table">
    <div class="Table-Cell">
      <div class="Center-Block">
      <!-- CONTENT -->
      </div>
    </div>
  </div>
  • css
  .Center-Container.is-Table { display: table; }
  .is-Table .Table-Cell {
    display: table-cell;
    vertical-align: middle;
  }
  .is-Table .Center-Block {
    width: 50%;
    margin: 0 auto;
  }

注意: 需要添加最内层的div,并且给div指定宽度和margin:0 auto;来使div居中。

Inline-Block

  • html
  <div class="Center-Container is-Inline">
    <div class="Center-Block">
      <!-- CONTENT -->
    </div>
  </div>
  • css
  .Center-Container.is-Inline {
    text-align: center;
    overflow: auto;
  }

  .Center-Container.is-Inline:after,
  .is-Inline .Center-Block {
    display: inline-block;
    vertical-align: middle;
  }

  .Center-Container.is-Inline:after {
    content: '';
    height: 100%;
    margin-left: -0.25em; /* To offset spacing. May vary by font */
  }

  .is-Inline .Center-Block {
    max-width: 99%; /* Prevents issues with long content causes the content block to be pushed to the top */
    /* max-width: calc(100% - 0.25em) /* Only for IE9+ */
  }
  • 空内容也会占据一定空间,需要margin-left:-0.25em;来抵消偏移
  • 内容块的最大宽度不能是100%,否则会把::after的内容挤到下一行

Flex

  • html
  <div class="contain">
    <div class="content">
       // content
    </div>
  </div>
  • css
 .container {
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
 }

最方便最简单的方式,但是要注意浏览器的支持

相关文章

  • CSS居中完全指南——构建CSS居中决策树

    CSS居中完全指南——构建CSS居中决策树 本文总结CSS居中,包括水平居中和垂直居中.本文相当于CSS决策树,下...

  • CSS居中小结

    CSS居中总结 最近在学习CSS居中,居中里面又包含水平居中和垂直居中,分不太清内联元素(inline or in...

  • Css让div在屏幕上居中

    # 让div在屏幕上居中(水平居中+垂直居中)的方法总结 - html代码如下: - Css居中方法 (敲黑板)...

  • CSS水平垂直居中总结

    CSS水平居中、垂直居中、水平垂直居中方法总结 文字的水平居中: 单行文字的垂直居中: 让有宽度的div水平居中:...

  • CSS布局(不完全)总结

    CSS布局(不完全)总结 实现水平居中布局的几种方式 方法一: 通过以下CSS代码实现水平居中布局 方法二: 通过...

  • web前端教程:CSS 布局十八般武艺都在这里了

    CSS布局 布局是CSS中一个重要部分,本文总结了CSS布局中的常用技巧,包括常用的水平居中、垂直居中方法,以及单...

  • 垂直居中的方法

    行内元素居中 html css before元素居中 html css table-cell居中 css 垂直居中...

  • CSS图片居中(水平居中和垂直居中)

    css图片水平居中 css图片垂直居中 css图片水平垂直居中

  • CSS垂直居中

    CSS垂直居中的方法总结: 1.利用padding垂直居中(line-height用于单行文本居中) **不需要设...

  • CSS居中的几种方式

    本文主要总结几种常见的CSS居中方式,下面我准备分为三个方向来写,分别是水平居中,垂直居中,水平垂直居中。水平居中...

网友评论

      本文标题:CSS居中总结

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