zoukankan      html  css  js  c++  java
  • 水平垂直居中的几种方式-----让爸爸再也不用担心你的学习了

    1.实现行内元素水平居中(未设置宽度)     

    ①使用text-align:center 实现行内元素水平居中 /*div内的行内元素均会水平居中*/

    1 <style>
    2 .demo{
    3           text-align: center; 
    4         }
    5 </style>    
    Css View Code
    1 <div class="demo">
    2           我是一只小小鸟
    3           <span>我也是一只小小鸟</span>
    4 </div>
    HTML View Code

    ②使用line-height行内元素的垂直居中、/*div内得行内元素均会垂直居中*/、/*当然想要既水平居中有垂直居中就两个都加*/

    1 <style>
    2      .demo{
    3           text-align: center; 
    4           height: 50px;
    5           line-height: 50px;
    6          }
    7 </style>
    Css View Code

     ③使用 fit-content 和 margin;auto    支持谷歌 欧朋 火狐 360等

    1  <div class="content">
    2         <img src="../css3/images/1.jpg" />
    3 </div>
    4 
    5 .content{
    6      -webkit-fit-content;
    7      -moz-fit-content;
    8      margin: auto;
    9     }
    View Code

    2.实现块级元素水平居中(以设置宽度

    ①使用margin position实现水平垂直居中

    1 .demo{
    2             height: 400px;
    3             width: 200px;
    4             border: 2px dashed red;
    5             position: absolute;
    6             top: 50%;
    7             left: 50%;
    8             margin:-200px 0 0 -100px;
    9           }
    Css View Code
    1 <div class="demo">1 absolute middle </div>
    HTML View Code

    ②使用margin:0 auto;实现水平居中  /*块级元素的宽度必须设置,如果宽度不够文字将会竖着排列*/ 、、/*相对于父级元素水平居中*/

     1 <style>
     2     .demo{
     3         margin:0 auto ;
     4         width: 200px;
     5          }
     6 </style>
     7 
     8 <body>
     9       <div class="demo">
    10           我是一个小鸟
    11       </div>
    12 </body>
    View Code

     ③使用 position:absolute,margin:auto实现水平居中

    1     .demo{
    2           height: 100px;
    3           width: 100px;
    4           position: absolute;
    5           left: 0;
    6           right: 0;
    7                           /*加上bottom:0;top:0;实现水平垂直同时居中*/
    8           margin: auto;
    9          }        
    Css View Code
    1       <div class="demo">
    2           我是一个小鸟
    3       </div>
    HTML View Code

    3.元素设置宽度,实现水平居中

    ①使用table标签配合margin-left:auto,,margin-right:auto实现未设置宽度的块级元素水平居中

    1. 使用table标签(或直接将块级元素设置为display:table;让块级元素具备table的属性),再通过给标签添加样式margin-left,margin-right都为auto;

    ②使用display和text-align:center;实现未设置宽度的元素水平居中

    1      .demo1{
    2             display:block;
    3             text-align: center;
    4           }
    View Code

    ③使用position:absolute,transform实现为设置宽的块级元素水平居中

    1. transform:translateX可以使元素向X(从左向右移动)移动
    2. 同时也可以通过transform:translateY实现元素的垂直居中
    3.  1 <!DOCTYPE html>
       2 <html>
       3     <head>
       4         <meta charset="UTF-8">
       5         <title>使用</title>
       6         <style>
       7           .demo{
       8             position: absolute;
       9             left:50%;
      10             -webkit-transform: translateX(-50%);
      11           }
      12         </style>
      13     </head>
      14     <body>
      15       <div class="demo">这是一个需要居中的东西</div>
      16     </body>
      17 </html>
      View Code

    ④使用position:relative加上float or display 是元素变成块级元素,从而是为设置宽度的元素居中

    1. 必须把父级元素设置为行内块元素display:inline-block
    2. 必须是外父元素left相对定位,内(目标元素)设置right相对定位
    3.  1 <!DOCTYPE html>
       2 <html>
       3     <head>
       4         <meta charset="UTF-8">
       5         <title></title>
       6         <style type="text/css">
       7           .content{
       8             position: relative;
       9             display: inline-block;
      10             left: 50%;
      11           }
      12             .demo{
      13               position: relative;
      14               right: 50%;
      15             }
      16         </style>
      17     </head>
      18     <body>
      19       <span class="content">
      20         这是一个行间元素
      21         <div class="demo">
      22           我认为你说的很对
      23         </div>
      24       </span>
      25     </body>
      26 </html>
      View Code

    ⑤CSS3的flex实现水平居中方法,法一

      .contentdemo{

        display: flex;

        flex-direction: column;

            }

    .  content{

        align-self:center;

          }

    ⑥CSS3的flex实现水平居中方法,法二

    .   contentdemo{

          display: flex;

              }

    .  content{

          margin: auto;

          }

    ⑦CSS3的fit-content配合左右margin为auto实现水平居中方法

    .  content{

           fit-content;

          margin-left: auto;

          margin-right: auto;

          }

    ⑧子盒子未设置宽度(常常使用)

    contnet{

      positiion:absolute|relative;

      left:50%;

      top:50%;

    /*translate(-50%,-50%) 偏移自身的宽和高的-50%*/

      transform:translate(50%,50%)  注意这里启动了3D硬件加速哦 会增加耗电量的 (至于何是3D加速 请看浏览器进程与线程篇)

    }

    4.最后介绍一种强大的兼容模式(元素未设置宽度|设置宽度)都可行

    html.
    <div class="wrap">
        <div class="inside">
            这是一段需要垂直居中的文本
        </div>
    </div>
    
    
    css,
    .warp{
       display:table;
       text-align:center;
       100px;/*可有可无*/
       height100px; /*可有可无*/      
    
    }
    .insid{
       display: table-cell;
       height: 200px;
        background-color: yellow;
        vertical-align: middle;
    
    }

    实现原理:通过display将元素变为具有table的块级元素,通过display:table-cell将子元素设置为表格单元格格式,再通过vertical-align实现文本的垂直居中,以及text-align:center实现文本的水平居中 

     5.最近发现了一种新的垂直居中的方法【未设置宽高】20190323

    ①设置的是父元素绝对定位加上下移动,子元素transform左右移动

    html.
    <div class="demo" >
            <h1 id="demo"></h1>
    </div>
    
    
    css.
    .demo{
                position: absolute;
                 left:50%;
                 top: 50%;
                -o-transform:translateY(-50%);/* opera */
                -ms-transform:translateY(-50%);/* ie */
                -moz-transform:translateY(-50%)/* Firefox */
                -webkit-transform: translateY(-50%);/* google safari */
    }
    h1{
                -webkit-transform: translateX(-50%);
    }

     ②只需要设置子元素移动即可 使用到了绝对定位,旋转等,上代码

    html.
    <div class="bg">
            <div class="dome">忍一时风平浪静,退一步海阔天空</div>
     </div>
    
    
    css.
    .dome{
        position: absolute;
        top: 50%;
        left: 50%;
        transform:translate(-50%,-50%);
        text-align: center;
        z-index: 22;
    }

    ①②③④⑤⑥⑦⑧⑨

  • 相关阅读:
    python ascii codec can't decode
    python文件编码说明 coding=utf-8
    windbg的使用
    在后台运行Python脚本服务
    ubuntu下更改分辨率
    【转】VC调试的时候 “没有调试信息,未加载符号”
    常用正则表达式——中文匹配、拉丁匹配
    SQL的经典操作——批量复制同行的其它列数据到其它列数据
    关于C++对汉字拼音的处理(3)
    关于环境变量设置是否需要重启的问题
  • 原文地址:https://www.cnblogs.com/520Girl/p/10452849.html
Copyright © 2011-2022 走看看