美文网首页
普通元素垂直水平居中原理、单行多行文字垂直水平居中

普通元素垂直水平居中原理、单行多行文字垂直水平居中

作者: sdcV | 来源:发表于2017-07-21 22:14 被阅读55次
一、普通元素三种垂直水平居中

如图:

image.png
<div class="main"> //html结构
    <div class="content"></div>
</div>
.main{   //main的样式
     width: 100px;
     height: 100px;
     background-color: #ff7f50;
     display: flex;
     align-items: center;
     justify-content: center;
}
  1. absolute小技巧</b>
.content1{
    width: 100px;
    height: 100px;
    background-color: #20b2aa;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

原理:利用绝对定位元素的盒模型特性,在偏移属性为确定值的基础上,设置margin:auto。

  1. translate()函数
.content2{
    width: 100px;
    height: 100px;
    background-color: #20b2aa;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

原理:利用绝对定位元素的偏移属性和translate()函数的自身偏移达到水平垂直居中的效果[注意]IE9-浏览器不支持。

  1. 使用flex
.main{
    width: 100px;
    height: 100px;
    background-color: #ff7f50;
    display: flex;
    align-items: center;
    justify-content: center;
}

原理:在伸缩容器上使用主轴对齐justify-content和侧轴对齐align-items。

二、文字居中垂直水平居中
image.png
<div class="middle-box"> //html结构
    <div class="middle-inner">
        <p>good good study,</p>
        <p>day day up!</p>
    </div>
</div>
  • 1 单行文字垂直居中

    text-align: center;
    line-height = height;
    
  • 2 多行文字垂直水平居中

    1. 第一种display:table的方法

      .middle-box {
          display: table;
          height: 200px;
          width: 200px;
          background-color: #20B2AA;
      }
      
      .middle-inner {
         display: table-cell;
         vertical-align: middle;
         text-align: center;
      }
      缺点就是不兼容ie6、ie7.怎么兼容呢?
      两者写法:
       1、条件语句写法
       <!--[if lt IE 8]>
       <style>
          .middle-inner { position: absolute; top:50%;}
          .middle-inner p {position: relative; top: -50%}
       </style>
       <![endif]-->
       2、ie hack写法
       .middle-box {
           display: table;
           height: 300px;
           border: 1px solid #ff0000;
           width: 400px;
           margin: 0 auto;
           position: relative;
       }
      
       .middle-inner {
           display: table-cell;
           vertical-align: middle;
           *position: absolute;
           *top: 50%;
           *left: 50%;
           width: 100%;
           text-align: center;
       }
      
       .middle-inner p {
           position: relative;
           *top: -50%;
           *left: -50%;
       }
      

相关文章

  • 所有CSS居中方法,了解一下?

    目录 水平居中内联元素水平居中块级元素水平居中多个块级元素的水平居中 垂直居中内联元素垂直居中单行内联元素多行内联...

  • 居中

    水平居中 行内元素(单行/多行) 单行块级元素 多行块级元素 垂直居中 单行行内元素 padding-top = ...

  • CSS水平垂直居中总结

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

  • CSS中几种常用的居中

    居中 行内元素水平居中 文字相对图片、输入框垂直居中 块元素水平居中 单行文字垂直居中 更灵活的布局方式当然是建议...

  • css居中完全指北

    css的水平垂直居中问题太常见了,整理一波 行内单行文本 行内元素的水平居中比较常见 行内元素多行文本的垂直居中,...

  • css多行垂直水平居中--table布局大法

    ======= SEO专用 table-cell 定高水平垂直居中 不定高水平垂直居中 单行定高水平垂直居中 单行...

  • 普通元素垂直水平居中原理、单行多行文字垂直水平居中

    一、普通元素三种垂直水平居中 如图: absolute小技巧 原理:利用绝对定位元素的盒模型特性,在偏移属性为确定...

  • css居中方式总结(亲测有效)

    水平居中(行内元素水平居中、块级元素水平居中) 垂直居中 水平垂直居中 行内元素水平居中 text-align: ...

  • 各种居中以及文字一行内展示

    以下是个人整理 父元素宽高已知 单行文本水平垂直居中 子元素为非块级元素水平、垂直居中(包含多行文本) 不能使用c...

  • CSS布局小技巧

    1.让元素水平垂直居中 文字水平垂直居中 2.让元素垂直居中 2.1 flex方式 2.2 position方式 ...

网友评论

      本文标题:普通元素垂直水平居中原理、单行多行文字垂直水平居中

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