其实这是一个老问题了,s visibility:hidden 与 display:none 共同点就是都会似的元素不可见.但是 visibility:hidden 的DOM元素是占用空间的,会挤占其他元素的位置,宽度和高度边框边距等都不会发生变化,所以使用 offsetWidth等属性获取的值不会发生变化. 但是display:none 就完全不同了,在DOM树中完全不会渲染,就相当于不存在这个DOM一样,所以使用 offsetWidth 等获取到的结果都是0. 明白了这些,下面我们来看一个简单…
大家知道,如果想让某一段代码在前台不显示,最简单的方法是用css的display:none即可,这样下边的内容就自动上移或右侧的左移来填补这个空隙. 但特殊情况下我们只需要隐藏这个元素,但它的位置不能被占了,那该怎么实现呢. 突然发现css还有一个visibility属性,用 visibility:hidden;可以很方便实现隐藏元素在前台的显示,但它的位置不会被后边的元素抢占. visibility:hidden | visible display:none | block | inline…
相同点: 两者都可以将dom元素隐藏 不同点: 1.display: none 隐藏之后不占用文档流,而visibility: hidden却会占用文档流,如果要在隐藏元素的同时获取其尺寸信息,那就可以使用visibility: hidden 2.display: none 会引起页面的回流(重排)以及重绘,而visibility: hidden只会引起重绘,从性能角度上讲,visibility: hidden会稍微好点 3.display: none 的子元素不会进行显示,而visibilit…
visibility: hidden----将元素隐藏,但是在网页中该占的位置还是占着. display: none----将元素的显示设为无,即在网页中不占任何的位置.…
什么是回流 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建.这就称为回流(reflow).每个页面至少需要一次回流,就是在页面第一次加载的时候,这时候是一定会发生回流的,因为要构建render tree.在回流的时候,浏览器会使渲染树中受到影响的部分失效,并重新构造这部分渲染树,完成回流后,浏览器会重新绘制受影响的部分到屏幕中,该过程成为重绘. 什么是重绘 当render tree中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会…
之前写过一篇有关visibility:hidden和display:none的文章:为什么要用用visibility:hidden;代替display:none;?主要是从浏览器性能方面入手,却没写两者的主要区别,今天补充. 首先display:none,这个none会把元素从dom树中"摘除",这时其他元素会立马填充该元素的位置,也就是说一旦设置为none,这个元素是真的不存在了. 而visibility:hidden,它就像一块"抹布",把花花绿绿的元素都擦成透…
为什么要用用visibility:hidden;代替display:none;?因为后者更加消耗浏览器: css绘制画面有两种形式:repaint 和reflow,当我们更改css属相如background时,浏览器只需repaint就行,dom节点的大小.位置均未发生改变,我理解为:原地不动只是换个颜色填充而已.这时的开销就小. 当我们操作dom节点要改变其大小和位置时,对浏览器来说就比较麻烦了,必须要进行reflow,重新定位,重新布局,只不过对于现在的电脑硬件和高版本浏览器来说这倒不是显而…
What is the difference between visibility:hidden and display:none? 答案1 display:none means that the tag in question will not appear on the page at all (although you can still interact with it through the dom). There will be no space allocated for it b…
<div style="width:100px;height:100px;background:red;visibility:hidden"></div>//对象隐藏后,还有占有相应的空间大小 <div style="width:100px;height:100px;background:red;display:none"></div>//对象隐藏后,对象不占任何空间…
隐藏元素display:none 和 visibility:hidden的区别visibility:hidden可以隐藏某个元素,但是隐藏的元素仍要占据空间,仍要影响布局display:none不会占据空间 v-if和v-show都可以动态的控制dom显示和隐藏v-if是将dom元素动态的添加或删除v-show则是为该元素添加display:none属性,dom元素还存在于页面中…
总结: 结构: display:none: 会让元素完全从渲染树中消失,渲染的时候不占据任何空间, 不能点击, visibility: hidden:不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,不能点击 opacity: 0: 不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,可以点击 继承: display: none和opacity: 0:是非继承属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示. visibility: hidden:是…
1. display:none 设置display:none,让这个元素消失 消失不占据原本任何位置 连带子元素一起消失 元素显示:display:block 2. visibility:hidden 元素消失,只是视觉消失,在页面中实际存在,对布局依然起作用 元素显示:visibility:visible 3. opacity:0 opacity值为0代表透明度为0 元素完全透明,视觉上消失,页面实际存在,依然对布局起作用 0-1之间代表透明度,值为1则元素完全显示…
display与元素的隐藏 如果给一个元素设置了display: none,那么该元素以及它的所有后代元素都会隐藏,它是前端开发人员使用频率最高的一种隐藏方式.隐藏后的元素无法点击,无法使用屏幕阅读器等辅助设备访问,占据的空间消失. <body> <div> <strong>给元素设置display:none样式</strong> <p>A元素</p> <p style='display:none;'>B元素</p&…
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.我们一般有三种方式:display:none, opacity:0;filter:alpha(opacity=0-100;, visibility:hidden.但这三种方式有何区别? 一.三种隐藏方式的区别 1.display:none (1).浏览器不会生成属性为display: none;的元素. (2).display: none;不占据空间,把元素隐藏起来,所以…
在css中, display:none和visibility:hidden都能够使元素隐藏.但是两者所带来的效果完全不同. css  display:none 当使用该样式的时候,HTML元素的宽高等各种属性都将失效,其所占据的空间消失,可将该元素视作完全不存在. css  visibility:hidden 当使用该样式的时候,HTML元素的宽高等各种属性不会失效,其所占据的空间也会被完全保留下来,可将该元素视作完全透明. *当然当某HTML元素具有样式display: none;visibi…
关于使指定元素无法在视野内看到,有3个方法 display: none; opacity: 0; visibility: hidden; 1.display: none; 该方法会改变页面布局. 元素彻底消失,脱离文档流. 子元素跟随父元素被隐藏,并且无法单独显示. 绑定的事件也无法触发. 无论如何,DOM节点还是存在的,仍旧可以用 js 操作. 2.opacity: 0; 该方法不会改变页面布局. 实际上是元素的透明度为0. 子元素 opacity:1 是无效的,元素仍旧无法显示. 绑定的事件…
使用CSS隐藏元素的方法很多,在这里简单总结一下: 1.display:none display:none 应该是最常用的一种隐藏元素的方法,使用该方法隐藏的元素脱离文档流不占据空间,不会被浏览器解析,不能点击,搜索引擎可能会认为被隐藏的文字属于垃圾信息而被忽略,而且屏幕阅读器(是为视觉上有障碍的人设计的读取屏幕内容的程序)会忽略被隐藏的文字. 2.visibility:hidden 使用 visibility:hidden 隐藏的元素,不能点击,但是会占据文档空间,不够灵活,一般配合 posi…
一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none.这是最为人所熟知也是最常用的方法.我相信还有不少人想到使用设置visibility为hidden来隐藏元素,这种方式也是常用的方法,而且也有很多人知道两者的不同.除了这两种方法,本文还总结了一些比较不常用的方法,比较了这几种“隐藏”元素方法的区别和优缺点,欢迎大家交流!! 几种方法的简单介绍 首先我们分别来说说到底有哪几种隐藏元素的方法,有一些方法是众所周知的,还有一些算是一种技巧. display:n…
在做茶城网改版工作的时候,又遇到一个新问题,我需要用jQuery写一个通过点击左右图标来翻阅图片的小插件,写好后测试可以正常运行,但是放到Tab中后发现只有第一个Tab中的代码能够正常运行,其它全部罢工了.   用Chrome自带的开发工具一查,发现罢工的Tab中.小插件一些重要元素的宽度都变成"0"了,因为这个小插件需要计算动态宽度来实现,于是马上想到是小插件中的宽度获取失败了,果不其然.   汗,居然一直没发现jQuery无法获取隐藏元素(display:none)的宽度(widt…
本文地址:http://luopq.com/2016/02/15/css-tricks-of-hide-element/,转载请注明 一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none.这是最为人所熟知也是最常用的方法.我相信还有不少人想到使用设置visibility为hidden来隐藏元素,这种方式也是常用的方法,而且也有很多人知道两者的不同.除了这两种方法,本文还总结了一些比较不常用的方法,比较了这几种“隐藏”元素方法的区别和优缺点,欢迎大家交流!!…
用jQuery写一个通过点击左右图标来翻阅图片的小插件,写好后测试可以正常运行,但是放到Tab中后发现只有第一个Tab中的代码能够正常运行,其它全部罢工了. 用Chrome自带的开发工具一查,发现罢工的Tab中.小插件一些重要元素的宽度都变成“0”了,因为这个小插件需要计算动态宽度来实现,于是马上想到是小插件中的宽度获取失败了,果不其然. 汗,居然一直没发现jQuery无法获取隐藏元素(display:none)的宽度(width)和高度(height),为了兼容IE6,我用1.x版,而且是官方…
1.版本问题 如果你可以获取下列元素 <input type="hidden"/> <div style="display:none">123</div> 而你使用的JQuery是高于1.3版本的,你获取不到通过visibility:hidden样式隐藏的元素就对了 2.解决方案 $("div").filter(function() { if($(this).css("visibility"…
在实际开发中会遇到确实需要获取隐藏元素的宽高,这儿所说的隐藏元素是display为none的元素. 可使用jQuery Actual Plugin插件来完成,其源码如下: ;( function ( $ ){ $.fn.addBack = $.fn.addBack || $.fn.andSelf; $.fn.extend({ actual : function ( method, options ){ // check if the jQuery method exist if( !this[…
隐藏元素的方法 隐藏元素的方法可以总结为六类:直接隐藏.对溢出内容隐藏.对元素透明度进行调整.将元素移除当前屏幕.对元素的层级关系进行调整.对元素进行裁剪 只有对元素的透明度进行调整才可以点击,其余都不可点击 // 直接隐藏visibility:hidden display:none // 对溢出内容隐藏 overflow:hidden text-overflow:ellipsis // 对元素透明度进行调整 opacity: background:transparent // 将元素移除当前屏…
有时候,我们一进入页面,就需要获取display为none元素的物理尺寸(宽高),或获取display为none元素的子元素的物理尺寸(宽高),本篇文章就如何解决以上问题给出自己的解决方案 <h4>获取display为none元素的子元素的物理尺寸</h4><h5>方案一思路:</h5><ul><li>1.利用给元素添加行内样式:display:block;position:absolute;z-index:-1000<li&g…
1.利用给元素添加行内样式:visibility:hidden;display:block 2.让隐藏元素变成有物理尺寸存在,但不可见,获取元素宽高 3.再给它还原成display为none,去除visibility //#step-2默认是隐藏 display:none //添加样式,物理可见 $("#step-2").css({"display":"block","visibility":"hidden"…
可以采用元素定位 + padding 的方式使特定元素高度自适应. css 样式: html,body{ height:100%; margin:; padding:; } .wrap { height:100%; box-sizing: border-box ; position: relative; padding: 60px 0 0; } .header { height: 60px; position: absolute; top:; width: 100%; } .content {…
写在前面 在群里有朋友问这样一个问题,display:none的标签,影响了布局.这就引出了本篇这样的问题,印象中display:none的块元素是不占位置的. 一个例子 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; char…
定义和用法 visibility 属性规定元素是否可见. 提示:即使不可见的元素也会占据页面上的空间.请使用 "display" 属性来创建不占据页面空间的不可见元素. 说明 这个属性指定是否显示一个元素生成的元素框.这意味着元素仍占据其本来的空间,不过可以完全不可见.值 collapse 在表中用于从表布局中删除列或行. 默认值: visible 继承性: yes 版本: CSS2 JavaScript 语法: object.style.visibility="hidden…
HTML标记一般分为块标记和行内标记两种类型,它们也称块元素和行内元素. 块元素 每个块元素通常都会独自占据一整行或多整行,可以对其设置宽度.高度.对齐等属性,常用于网页布局和网页结构的搭建.并且块级元素容器可以容纳多个嵌套的块级标签或者行内标签.常见的块元素有<h1>~<h6>.<p>.<div>.<ul>.<ol>.<li>等,其中<div>标记是网页制作中最常用的块元素. 行内元素 行内元素不占有独立的区…