讲师中心 微信公众号
AI工具推荐 视频效率加速

CSS3怎么隐藏元素不占空间_visibilityhidden和displaynone区别【指南】

小伟小哥_5281

小伟小哥_5281

发布时间:2026-01-04 21:35:02

|

674人浏览过

|

来源于php中文网

原创

display: none 彻底移除元素且不占空间,触发重排重绘,子元素一并隐藏;visibility: hidden 仅视觉隐藏但保留布局空间,不触发重排,支持 visibility 过渡但需配合 opacity 实现渐变效果。

css3怎么隐藏元素不占空间_visibilityhidden和displaynone区别【指南】

display: none 和 visibility: hidden 的核心区别

隐藏元素却不占空间,必须用 display: none;visibility: hidden 只是“看不见”,但位置、尺寸、盒模型照常参与布局——它依然占空间。

什么时候该用 display: none

适用于需要彻底移出文档流的场景,比如切换 Tab 面板、条件渲染弹窗、响应式折叠导航栏。它的行为等价于元素被临时删掉。

  • display: none 触发重排(reflow)和重绘(repaint)
  • 子元素一并隐藏,且无法被聚焦、无法被屏幕阅读器读取(除非额外加 aria-hidden="false" 等逻辑)
  • 不能设置过渡动画(transition 对 display 无效)
  • JavaScript 查询 offsetHeight、getBoundingClientRect() 返回 0

visibility: hidden 的真实用途

它不是“隐藏占位符”的替代方案,而是为特定交互保留布局结构:比如实现 hover 展开菜单时保持下方内容不动,或做 loading 占位 + 内容淡入的组合效果。

Json Repair Kit
Json Repair Kit

使用 Node.js 评估修复格式错误的 JSON,自动纠正尾随逗号、单引号、未加引号的键等常见问题,实现文件规范化。

下载
  • 不触发重排,只重绘,性能略优(但差异通常可忽略)
  • 子元素默认继承该状态,但可通过 visibility: visible 单独恢复(这点很关键)
  • 支持 transition: visibility 0.2s,但需配合 opacity 才有视觉渐变效果
  • JavaScript 查询 offsetHeight 仍返回真实值

常见错误与替代方案

想用 visibility: hidden 实现“不占空间”是典型误解;想给 display: none 加 fade 动画也会失败。

立即学习“前端免费学习笔记(深入)”;

  • 要过渡隐藏/显示,用 opacity: 0 + pointer-events: none + transition,再配合 JS 在动画结束后设 display: none
  • 用 position: absolute + left: -9999px 是旧式“隐藏但可读”方案,现在更推荐 clip-path: inset(100%) 或 aria-hidden 配合语义化处理
  • 服务端渲染中,display: none 的元素仍会生成 DOM 节点,若需真正省流量,得靠后端逻辑跳过输出
.fade-out {
  opacity: 0;
  transition: opacity 0.3s ease;
}
.fade-out.hidden {
  pointer-events: none;
}
/* 动画结束后手动移除元素或设 display: none */

真正难的不是选哪个属性,而是判断“要不要保留布局上下文”——这个决策一旦错,后续所有动画、JS 尺寸计算、无障碍支持都会连锁出问题。

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2000

2023.06.14

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3026

2023.11.01

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4496

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1375

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1778

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

10043

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

980

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2804

2023.09.04

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 98.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn