zoukankan      html  css  js  c++  java
  • DIV居中以及设置隐藏的几种方式

    PartI DIV居中的常用方法:

    1)text-align:center方式

    --------------------------html-----------------------------

    <div class="demo1">
    <div class="text1">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .demo1 {
    text-align: center;
    }
    

    注: 块元素不可以!

    2)margin: 0 atuo方式
    -------------------------html-----------------------------

    <div class="demo2">
    <div class="text2">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .text2 {
    margin: 0 auto;
     200px;
    background: red;
    }
    

    注: 这种对齐方式要求内部元素(.text2)是块级元素,并且不能脱离文档流(如设置position:absolute),否则无效。

    3) 脱离文档流的居中方式(position:absolute)
    通过absolute的流体特性实现居中。(对立方向同时发生定位)
    -------------------------html-----------------------------

    <div class="demo3">
    <div class="text3">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .text3 {
     300px;
    height: 300px;
    position: absolute;
    background: red;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    }
    

    注: 行内块不可以!

    4) display:table-cell
    display:table-cell配合width,height
    text-align:center,vertical-align:middle让大小不固定元素垂直水平居中,
    这个方式将要对其的元素设置成为一个td,float、absolute等属性都会影响它的实现。
    -------------------------html-----------------------------

    <div class="demo4">
    <div class="text4">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .demo4 {
    display: table;
     100%;
    height: 500px;
    background: red;
    }
    .text4 {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    /* 影响效果 */
    /* float: left; */
    /* position: absolute; */
    }
    

    5) 垂直居中
    只需设置line-height即可,height不需要设置。(因为div的高度是由行高决定的!)
    -------------------------html-----------------------------

    <div class="demo5">
    <div class="text5">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .demo5 {
    line-height: 80px;
    background: red;
    }
    

    **6)使用css3的translate水平垂直居中元素 **
    这种方式将脱离文档流的元素,设置top:50%,left:50%,然后使用transform来向左向上偏移半个内元素的宽和高。
    -------------------------html-----------------------------

    <div class="demo6">
    <div class="text6">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .text6 {
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(-50%, -50%);
    }
    

    7)使用css3计算的方式居中元素calc
    这种方式同样是将脱离文档流的元素,然后使用计算的方式来设置top和left;
    -------------------------html-----------------------------

    <div class="demo7">
    <div class="text7">demo</div>
    </div>
    

    --------------------------css-----------------------------

    .text7 {
    position: absolute;
    top: calc(50% - 100px);
    left: calc(50% - 50px);
    }
    

    PartII CSS设置隐藏的常用方法:

    1)display: none

    将元素从文档中删除,不占空间,对布局没有影响,但会产生回流。

    2)text-indent: -999em

    将文字提到段落前面,不让看见,会影响布局

    3)font-size: 0

    直接将文字的高度设为0,从而不让看见

    4)position: relative / absolute;

     **top: -999em / left: -999em**
    

    不占据空间,只要距离显示屏幕足够大就ok,适用于比较写死的东西,不能随意修改。

    5)visibity: hidden

    只是看不见而已,占据空间,无法点击,元素依然会影响布局,不产生回流,性能较好

    注: 该属性会继承,父元素使用其隐藏,子元素也会受其影响,看不见,必须通过设置visibility:visible让其显示

    6)opacity: 0

    设置透明度为0,使其看不见。占空间,可以点击。

    7)z-index: -1 任意负值

    上一级设置背景色,使其看不见。不能点击

    8)clip: rect(0,0,0,0)

    裁剪隐藏,不占据空间,不能点击。

    Q: 使用隐藏元素需考虑的关键点有哪些?

    A: 1. 是否占据空间

    2. 回流与渲染  见web的回流与重绘
    
    3. 株连性 (visibility的继承性)
    

    Q: display: none 和 visibility:hidden的区别

    A: display: none 不占空间,对布局没影响,会产生回流

    visibility: hidden 占空间,对布局有影响,不产生回流,性能比display:none好
    

    Q: z-index 负值设置隐藏和clip裁剪设置隐藏的区别

    A: z-index 只需要层叠上下文内的某一个父元素加个背景色即可,元素无需绝对定位,设置position: relative 也可隐藏。并且对原来的布局以及父元素的行为无任何影响

    clip 必须绝对定位或固定定位,因为此属性定义了绝对定位对象可视区域的尺寸,所以必须得将position属性的值设置为absolute时才可使用并且会导致focus的焦点发生细微的变化,在特定条件下有体验问题。
  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/zppsakura/p/12395355.html
Copyright © 2011-2022 走看看