CSS中隐藏页面元素的几种方式和区别

news2024/9/24 18:18:36

前言、

在平常的样式排版中,我们经常遇到将某个模块隐藏的场景,通过css隐藏的元素方法有很多种,它们看起来实现的效果是一致的,但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法。

实现方法综合、

通过css实现隐藏元素方法有如下:

  • display:none
  • visibility:hidden
  • opacity:0
  • 设置height、width模型属性为0
  • position:absolute
  • clip-path

方法一:display:none

display:none是通常最实用的隐藏元素的方法

.conceal {
   display:none
}

将元素设置的display:none,可以将元素在页面中彻底消失。
此元素原本所占据的位置,会被其他元素占据,也就是说它会导致浏览器的重排的重绘
消失后,自身绑定的事件不会触发,也不会有过渡效果
特点:元素不可见,不占据空间,无法响应点击事件

方法二:visibility:hidden

visibility:hidden也是非常常用的一种隐藏方式,但是跟display:none大有不同
visibility:hidden从页面上来看仅仅是隐藏该元素,DOM结果依然会存在,只是处于一个不可见的状态。不会发生重排,但是会发生重绘。

.conceal {
   visibility:hidden
 }

给人的效果是隐藏了,所以他的自身事件不会触发。
特点:元素不可见,占据空间,无法响应点击事件

方法三: opacity:0

opacity属性表示元素的透明度,将元素的透明度设置为0之后,在用户的严重,元素也是可以达到隐藏效果的 该方法不常用,不会引发重排,一般情况下也会引发重绘

.conceal {
   opacity:0
}

它是存在于页面之上的,所以他自身的事件仍然是可以触发的,但被他遮挡的元素是不能触发其他事件的
注意:其子元素不能设置opacity来达到显示的效果
特点:改变元素透明度,元素不可见,占据页面空间,可以响应点点击事件。

方法四:设置height、width模型属性为0

要用这种方法实现隐藏需将元素的margin、border、padding、height和width等影响元素盒模型的属性设置成0,如果元素内有子元素的内容,还要设置其overflow:hidden 来隐藏子元素

.conceal {
    margin:0;     
    border:0;
    padding:0;
    height:0;
    width:0;
    overflow:hidden;
}

特点:****元素不可见,不占据空间,无法响应点击事件

方法五:position:absolute

肯定看到这里会很惊讶为什么定位也能隐藏,其实我也是翻阅了一些资料之后才知道的,是将元素移出页面,不可见,从而就达到了"隐藏效果"虽然用处也很多,但多数不是用于“隐藏”。

.conceal {
   position: absolute;
   top: -9999px;
   left: -9999px;
}

特点:****元素不可见,不影响布局

方法六:clip-path

clip-path 通过裁剪的形式

.conceal {
  clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
}

特点:****元素不可见,占据空间,无法响应点击事件

总结:

最常用的还是方法一和方法二,其他的方式只能算是一种小妙招吧,很偏,因为它们的真正用途并不是用于隐藏元素所以本人是不推荐使用它们的。

区别:

关于display: none、visibility: hidden、opacity: 0的区别,如下表所示:

在这里插入图片描述

在这里还是要推荐下我自己建的软件测试学习Q群:1150305204,群里都是学测试的,如果你想学或者正在学习测试,欢迎你加入,大家都是测试党,不定期分享干货(只有软件测试相关的),包括我自己整理的一份2024最新的Python自动化测试进阶资料和零基础教学,欢迎进阶中和对测试感兴趣的小伙伴加入!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1397261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

POKT Network (POKT) :进军百亿美元市场规模的人工智能推理市场

POKT Network(又称 Pocket Network)是一个去中心化的物理基础设施网络(DePIN),它能够协调并激励对任何开放数据源的访问,最初专注于向应用程序和服务提供商提供区块链数据。 自 2020 年主网上线以来&#x…

图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 本项目的网络结构在network文件夹中,主要在modeling.py和_deeplab.py中: mo…

利用浏览器开发者工具进行网页性能优化

目录 学习目标: 学习内容: 学习时间: 学习产出: 网页性能优化的基本概念和指标: 浏览器开发者工具的基本功能和使用方法: 使用网络面板进行网页加载性能分析: 使用性能面板进行网页渲染性能分析…

最长上升子序列模型(LIS)

最长上升子序列模型就像它的名字一样,用来从区间中找出最长上升的子序列。它主要用来处理区间中的挑选问题,可以处理上升序列也可以处理下降序列,原序列本身的顺序并不重要。 模型 895. 最长上升子序列(活动 - AcWing&#xff0…

机器学习:何为监督学习和无监督学习

目录 一、监督学习 (一)回归 (二)分类 二、无监督学习 聚类 一、监督学习 介绍:监督学习是指学习输入到输出(x->y)映射的机器学习算法,监督即理解为:已知正确答案…

【算法】斐波那契数列 [递推,矩阵快速幂]

方法一. 递推 class Solution { public:int fib(int n) {int MOD 1e9 7;if (n < 2) return n;int p 0, q 0, r 1;for (int i 2; i < n; i) {p q;q r;r (p q) % MOD;}return r;} }; 方法二&#xff1a;矩阵快速幂 class Solution { public:const int MOD 1e…

AI 编程的机会和未来:从 Copilot 到 Code Agent

大模型的快速发展带来了 AI 应用的井喷。统计 GPT 使用情况&#xff0c;编程远超其他成为落地最快、使用率最高的场景。如今&#xff0c;大量程序员已经习惯了在 AI 辅助下进行编程。数据显示&#xff0c;GitHub Copilot 将程序员工作效率提升了 55%&#xff0c;一些实验中 AI …

《Python数据分析技术栈》第01章 03 Python基础(Python Basics)

03 Python基础&#xff08;Python Basics&#xff09; 《Python数据分析技术栈》第01章 03 Python基础&#xff08;Python Basics&#xff09; In this section, we get familiar with the syntax of Python, commenting, conditional statements, loops, and functions. 在…

dns正反解析配置

1.配置正向解析baidu.com 1、下载bind包 [rootlocalhost ~]# yum install bind -y 2、对配置文件修改 [rootlocalhost ~]# vim /etc/named.conf 3、对数据文件修改 [rootlocalhost ~]# vim /var/named/baidu 4、重启服务 [rootlocalhost ~]# systemctl restart named.service 5…

2.【C语言】(函数指针||sizeof||笔试题)

0x01.函数指针 void test(const char* str) {printf("%s\n", str); }int main() {void (*pf)(const char*) test;//pf是函数指针变量void (*pfarr[10])(const char*);//pfarr是存放函数指针的数组void (*(*p)[10])(const char*) &pfarr;//p是指向函数指针数组…

ROS学习笔记8——实现ROS通信时的常用命令

机器人系统中启动的节点少则几个&#xff0c;多则十几个、几十个&#xff0c;不同的节点名称各异&#xff0c;通信时使用话题、服务、消息、参数等等都各不相同&#xff0c;一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时&#xff0c;如何获取对方的话…

【Docker】Nacos的单机部署及集群部署

一、Nacos的介绍 Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 动态服务发现&#xff1a;Nacos支持DNS与RPC服务发现&#xff0c;提供原生SDK、OpenAPI等多种服务注册方式和DNS、HTTP与API等多种服务发现方式。服务健康监测&#xff1a;Nacos提供…

VUE组件--动态组件、组件保持存活、异步组件

动态组件 有些场景可能会需要在多个组件之间进行来回切换&#xff0c;在vue中则使用<component :is"..."> 来实现组件间的来回切换 // App.vue <template><component :is"tabComponent"></component><button click"change…

基于Springboot+vue图书管理系统(前后端分离)

该项目完全免费 项目技术栈前后端分离&#xff1a; 后端&#xff1a;Springboot Mybatis-plus 前端&#xff1a;Vue ElementUI 数据库&#xff1a; MySQL 项目功能描述 管理员&#xff1a; 登录、个人信息、修改密码、管理后台管理系统所有数据 首页统计&#xff1a;…

64.Spring事件监听的核心机制是什么?

Spring事件监听的核心机制是什么? spring的事件监听有三个部分组成 事件(ApplicationEvent) 负责对应相应监听器 事件源发生某事件是特定事件监听器被触发的原因监听器(ApplicationListener) 对应于观察者模式中的观察者。监听器监听特定事件,并在内部定义了事件发生后的响应…

0.96寸OLED-单独驱动和U8g2驱动-硬件软件IIC

0.96寸OLED-单独驱动和U8g2驱动-硬件软件IIC 博主平时DIY经常使用OLED&#xff0c;其中以4脚的I2C屏最多&#xff0c;就想着总结一下子&#xff0c;让广大DIY朋友更容易找到资源。 驱动采用的时SSD1306 同学们拿到代码后&#xff0c;可以直接用&#xff0c;其中博主给的代码默认…

MySQL面试总结

MySQL优化 1.MySQL如何定位慢查询 1.1开源工具 1.2MySQL自带慢日志 1.3解答 2.EXPLAIN 2.1解答 3.什么是索引 4.B树 4.1数据结构对比 5.聚簇索引&#xff08;聚集索引&#xff09; 6.覆盖索引 7.索引创建原则 8.什么情况下索引失效 9.你对sql优化经验 10.事务 11.MVCC 11.主从…

bgp--大AS分小AS

最后效果:r1能ping通r8,r4路由表有r1-r8环回,r4bgp路由表已优化 代码; [r1] ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 12.1.1.1 0.0.0.0 bgp 64512 router-id 1.1.1.1 confederation id …

Qt/QML编程之路:OpenGL的示例(39)

Qt编程之后,会发现有版本问题,有时候一个示例不同的版本下可能会跑不同,有些Qt5跑不同Qt6已经完善,可以跑通。 我就看到有个关于OpenGL的示例: 这个示例是演示怎么基于OpenGL编程的,但是调试时却发现glViewXXX等gl打头的函数说找不到reference,或者什么link不上之类的错…

nvm-nodejs版本控制工具(window操作系统)

一、概述 可以在电脑上同时安装多个nodejs版本&#xff0c;随意切换使用&#xff1b; 二、下载和安装mvn 参考&#xff1a;window操作系统安装多个版本的nodejs——nodejs版本控制工具nvm_windows node多版本共存-CSDN博客 1. 下载 官网地址&#xff1a;https://github.com…