zoukankan      html  css  js  c++  java
  • 让DOM从页面中消失的方法

    1. 在隐藏的方法中,display取none值这种方法一般是不可取的!因为display:none是直接不显示,也就是不渲染此元素,如果它所作用的元素排版在页面较前,先渲染,就容易引起回流(reflow)和重绘(repaint),造成难以预知的后果。

    display:none;
    

    特点:  不占据空间,不可点击(对鼠标事件无响应)

           株连性:其后代元素一概不渲染

             transition无法对其起作用

    2.visibility:元素消失,而后面的div却没有占据它原来的位置,说明元素不可见却仍然占据空间

    visibility:hidden;

    另外还有一种特殊情况:此时,后面的div占据它原来的位置(元素将脱离文档流,后面的元素就会占据它原本的空间)

    visibility:hidden;
    position: absolute;// 或fixed; 或float:left/right

    特点:占据空间,却不可点击(对鼠标事件无响应)

           有继承性,无株连性,后代元素可以设置visibility:visible来显示自己

           transition对hidden ->  visible无效,对visible -> hidden 有效

    3. 设置透明度

    opacity:0;

    特点:占据空间,可点击(对鼠标事件有响应)

           有继承性,无株连性,后代元素可设置opacity:1或者rgba(n,n,n,1)来显示自己

           transition对其有效

           使用position或float使其脱离文档流后,仍然对鼠标事件响应。

    4.overflow:hidden;

    <style>
        .overflow{
          overflow:hidden;
        }
        .overflow>ul>li{
          height:100px;
        }
        .overflow:hover{
          height:200px;
        }
    </style>
        <div class="overflow">
            <ul>
                <li>导航一</li>
                <li>导航二</li>
                <li>导航三</li>
            </ul>
        </div>
        <div class="position">position</div>

    特点:由于是溢出,顾名思义,隐藏的部分本来就不占据空间。

       显示可点击(对鼠标事件响应)  

         无继承性,无株连性,只对设置的元素起作用。

         transition对其有效,可做出炫酷的效果哦

       只需要改变元素的height:0px即可起到隐藏的效果

  • 相关阅读:
    Windows 文件过滤驱动经验总结
    修改disk驱动监控文件系统的IO特征
    STATUS_MUTANT_NOT_OWNED
    网络连接存储(Networkattached storage,NAS)简介
    缓存管理器
    LINUX softraid 管理
    过滤驱动的问题自我总结
    Visual Studio 2010 (vs2010) 全屏功能的改进
    在 .NET 中,后++ 运算符产生的一个小问题
    在 Visual Studio 2008 中去掉某些文件的只读属性
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/10600205.html
Copyright © 2011-2022 走看看