zoukankan      html  css  js  c++  java
  • display和visibility,(height: 0; overflow: hidden;)区别

    一、空间占据

    display: none; 是彻底消失,不在文档流中占位,浏览器也不会解析该元素

    visibility:hidden; 是视觉上消失了,可以理解为透明度为0的效果,在文档流中占位,浏览器会解析该元素;

    使用visibility:hidden比display:none性能上要好,display:none切换显示时visibility,页面产生回流(当页面中的一部分元素需要改变规模尺寸、布局、显示隐藏等,页面重新构建,此时就是回流。所有页面第一次加载时需要产生一次回流),而visibility切换是否显示时则不会引起回流。

    二、子元素继承

    display:none 不会被子元素继承,但是父元素都不在了,子元素自然也就不会显示了,皮之不存,毛之安附~~

    visibility:hidden 会被子元素继承,可以通过设置子元素visibility:visible 使子元素显示出来

    opacity: 0 也会被子元素继承,但是不能通过设置子元素opacity: 0使其重新显示

    三、事件绑定

    display:none 的元素都已经不再页面存在了,因此肯定也无法触发它上面绑定的事件;

    visibility:hidden 元素上绑定的事件也无法触发;

    opacity: 0元素上面绑定的事件是可以触发的。

    四、过渡动画

    transition对于display 肯定是无效的;

    transition对于visibility 也是无效的;

    transition对于opacity 是有效。

     

     

     

    对于height: 0;overflow: hidden;
    设置该属性时,块元素也会消失,如果绑定hover事件,该块元素设置固定height,也会达到隐藏,出来效果。transition对于他们是有效的。

     

    参考文章;https://www.cnblogs.com/zrenj/p/9785835.html

  • 相关阅读:
    javascript中keyCode与charCode属性
    handlebars.js基础学习笔记
    ajax个人学习笔记
    ajax三级联动
    background-position 用法详细介绍
    js学习笔记
    CSS浮动(float,clear)通俗讲解
    linux常用命令(个人学习笔记)
    MySQL函数
    String s = new String(“abc”); 可能产生几个对象?
  • 原文地址:https://www.cnblogs.com/fsg6/p/12660771.html
Copyright © 2011-2022 走看看