聊聊 CSS 隐藏元素的 10 种实用方法

简介: CSS 隐藏元素的方法你能说出来几种?

这是一个在初级 web 前端面试中可能常会提及的问题,聊这个话题不仅仅只是讨论“茴”字有几种写法,更是能从一个简单的问题中体现出你的 CSS 边界能力,本文提炼了十种最实用的方法,希望对你有所帮助。

常规方法

display: none;

结构消失,会触发回流重绘Reflow & Repaint)。

opacity: 0;

结构保留,占据空间,可以正常触发事件,因触发硬件加速所以不发生回流和重绘

visibility: hidden;

结构保留,占据空间,仅触发重绘,不会触发事件(无法选中)。

content-visibility: hidden;

设置元素内容可见性,设置的元素本身不受影响。hidden 隐藏效果与 display: none 类似,但实际浏览器只是跳过了内容的渲染,还保留着内容的渲染状态,性能上有优势。

注意:该属性目前还处于实验性阶段,使用时需要考虑浏览器兼容性问题。

逃逸视窗

position + left/top

利用绝对定位 position 设置 absolutefixed,同时 lefttop 设置 -9999px

超大负边距会将元素抛出视图,因为定位本身脱离了文档流所以不占据空间。

translate(-9999px)

利用偏移抛出视图,空间会占据,不过元素实际不在视窗内所以无法交互。

transform: translate(-9999px);
注意:此方法对 行内元素无效

2023-03-14 16.29.42.gif

这两种方法并不使元素本身消失,只是看不见了而已。

移行变换

scale(0) / skew(90deg)

通过2D变换来达到隐藏,占据空间,不可交互。

transform: scale(0);

transform: skew(90deg);

2023-03-14 16.31.57.gif

注意:此方法对 行内元素无效

circle(0px)

利用裁剪创建元素的可显示区域,区域外会隐藏,占据空间,不可交互(这里我用 circle 是因为它参数最少)

clip-path: circle(0px);

2023-03-14 16.33.37.gif

z-index

层叠上下文在合适的情况下可以遮挡住元素,也算是一种隐藏方式。

2023-03-14 16.36.24.gif

压缩空间

height: 0; width: 0;

宽高都为 0 时不占据空间,不可交互。需要处理边距等样式,还需设置 overflow: hidden; 否则子元素可能不会隐藏,注意还会被display影响,所以这个方法本身并不实用,但是可以充分体现对盒模型的理解。

width: 0;
height: 0;
padding: 0;
margin: 0;
border: none;
overflow: hidden;

2023-03-14 16.46.27.gif

总结

或许还有其它“障眼法”可以让元素不可见,以上整理的十种方法都独具代表性,且比较实用。

以上就是文章的全部内容,感谢看到这里!本人知识水平有限,如有错误望不吝指正,如果觉得写得不错,对你有所帮助或启发,可以点赞收藏支持一下,也欢迎关注,我会更新更多实用的前端知识与技巧。我是 茶无味de一天(公众号: 品味前端),希望与你共同成长~
相关文章
|
4天前
|
前端开发
CSS元素隐藏的多种方式:让你轻松实现页面布局
CSS元素隐藏的多种方式:让你轻松实现页面布局
|
4天前
|
前端开发
css中如何解决绝对定位元素被遮挡的问题
css中如何解决绝对定位元素被遮挡的问题
18 3
|
5天前
|
存储 移动开发 JavaScript
jQuery 根据 css 类筛选 DOM 元素的代码
jQuery 根据 css 类筛选 DOM 元素的代码
17 1
|
5天前
|
前端开发
|
5天前
|
前端开发
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
|
5天前
|
前端开发 开发者
【专栏:CSS基础篇】CSS选择器详解:精准定位网页元素
【4月更文挑战第30天】本文介绍了CSS选择器在Web开发中的重要性,详细阐述了基础选择器(元素、类、ID、属性和伪类/伪元素)及复杂选择器(后代、子元素、相邻兄弟和一般兄弟)的用法。通过理解并巧妙运用这些选择器,开发者能更高效地控制页面样式,提高代码的可维护性。CSS预处理器如Sass、LESS进一步增强了选择器的功能,助力创建优雅且强大的样式表,实现精准的网页设计。
|
5天前
|
前端开发 容器
css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解
css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解
|
5天前
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
|
5天前
|
前端开发 UED 开发者
【专栏】探讨了CSS3动画卡顿的原因,包括复杂动画效果、过多元素参与、低效代码结构和硬件资源限制,并提出优化措施
【4月更文挑战第29天】本文探讨了CSS3动画卡顿的原因,包括复杂动画效果、过多元素参与、低效代码结构和硬件资源限制,并提出优化措施:简化动画路径、控制元素数量、优化代码结构、利用硬件加速及性能监测。通过实际案例展示了优化效果,强调了性能优化对提升用户体验的重要性。在开发中,应持续关注并优化动画性能,以适应网页应用的需求。
|
5天前
|
前端开发
css flex布局两个元素水平居中垂直居中
css flex布局两个元素水平居中垂直居中
19 1