• 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的焦点发生细微的变化,在特定条件下有体验问题。
  • 相关阅读:
    Select查询执行顺序
    javascript异步处理
    ASP.NET MVC WebAPI请求
    函数声明和函数表达式
    var声明的成员变量和函数内声明的变量区别
    网页大小自适应方案
    MVC Html.AntiForgeryToken() 防止CSRF攻击
    Jquery跨域请求
    螺旋模型
    快速原型模型
  • 原文地址:https://www.cnblogs.com/zppsakura/p/12395355.html
Copyright © 2020-2023  润新知