首页 > 其他分享 >分析比较opacity: 0、visibility: hidden、display: none三者的优劣和适用场景

分析比较opacity: 0、visibility: hidden、display: none三者的优劣和适用场景

时间:2025-01-22 09:55:17浏览次数:1  
标签:opacity none 场景 元素 visibility hidden 隐藏

在前端开发中,opacity: 0visibility: hiddendisplay: none是三种常用的CSS属性,用于控制元素的可见性。它们各自具有不同的特点,适用于不同的场景。以下是对这三者的优劣和适用场景的分析比较:

一、opacity: 0

  1. 特点:设置元素透明度为0,使元素完全透明。元素虽然不可见,但仍然占据页面上的空间,并且可以接收到鼠标事件。
  2. 优劣
    • :可以实现淡出效果,提升用户体验;性能较高,不会触发重排或重绘。
    • :元素占据空间可能导致页面布局出现问题;子元素无法通过设置opacity: 1来取消隐藏。
  3. 适用场景:适用于需要实现淡出效果的场景,如弹出层的显示和隐藏。

二、visibility: hidden

  1. 特点:将元素隐藏起来,使其不可见。与opacity: 0类似,元素仍然占据页面上的空间,但不同的是,visibility: hidden下的元素无法接收到鼠标事件。此外,该属性具有继承性,即如果父元素被隐藏,那么子元素也会被隐藏。
  2. 优劣
    • :隐藏元素同时保持元素布局不变;性能较高,只会引起重绘。
    • :无法接收到鼠标事件可能限制某些交互功能;子元素虽然可以通过设置visibility: visible来取消隐藏,但操作相对繁琐。
  3. 适用场景:适用于需要隐藏元素但仍然需要占据原来空间的场景,如菜单的展开和收起。

三、display: none

  1. 特点:将元素完全从渲染树中移除,不占据任何空间。因此,该元素及其子元素都无法被看到或交互。
  2. 优劣
    • :彻底隐藏元素,不占据空间,有利于页面布局;可以避免不必要的DOM操作,提高性能。
    • :无法接收到鼠标事件;动态改变此属性时会引起重排,性能较差(相对于其他两种属性)。
  3. 适用场景:适用于需要完全隐藏元素并且不需要占据原来空间的场景,如切换选项卡时隐藏非当前选项卡的内容。

综上所述,opacity: 0visibility: hiddendisplay: none各有其特点和适用场景。在选择使用时,应根据具体需求和场景进行权衡和选择。

标签:opacity,none,场景,元素,visibility,hidden,隐藏
From: https://www.cnblogs.com/ai888/p/18685111

相关文章

  • WPF中后端bool是否可见字段转换为前端Visibility
    1.编写转换类Bool2VisibilityConverter,继承自IValueConverter(usingSystem.Windows.Data;)publicclassBool2VisibilityConverter:IValueConverter{publicobjectConvert(objectvalue,TypetargetType,objectparameter,CultureInfoculture){......
  • rgba()和opacity这两个的透明效果有什么区别呢?
    rgba()和opacity在前端开发中都是用来实现透明效果的,但它们之间存在着一些显著的区别。以下是对这两者透明效果差异的详细解释:取值范围与透明度控制:rgba():这是一个CSS颜色函数,用于设置颜色,并可以指定其透明度。rgba代表红绿蓝和透明度(Alpha)四个通道,取值范围是0-255(红、绿、蓝......
  • PyQ5中findChild() 方法,为什么是none
    第一个代码是kimi生成的,调用findchild方法可以使用;第二个调用findchild是none,为什么?importsysfromPyQt5.QtWidgetsimportQApplication,QMainWindow,QLineEditclassMainWindow(QMainWindow):def__init__(self):super().__init__()self.setGeom......
  • Flutter使用ScrollBar设置thumbVisibility属性出现Another exception was thrown: The
    ══╡EXCEPTIONCAUGHTBYSCHEDULERLIBRARY╞═════════════════════════════════════════════════════════Thefollowingassertionwasthrownduringaschedulercallback:TheScrollbar'sScrollController......
  • salesforce 验证规则判断一个picklist是否为none
    在Salesforce验证规则中,如果你想判断一个Picklist字段是否等于None,可以使用ISPICKVAL函数。以下是具体的公式:ISPICKVAL(Picklist_Field__c,"None")示例解释:Picklist_Field__c:是你的自定义Picklist字段的API名称。"None":是Picklist的选项值。如果“N......
  • iptv-allinone转载
    使用说明:一、推荐使用Docker一键运行,并配置watchtower监听Docker镜像更新,直接一劳永逸:1,使用Docker一键配置allinonedockerrun-d--restartunless-stopped--privileged=true-p35455:35455--nameallinoneyoushandefeiyang/allinone 2,一键配置watchtower每天......
  • Docker 超强进阶!手把手部署 AllInOne,永久电视直播+自动更新,转载
    1、allinone指令:dockerrun-d--restartunless-stopped--net=host--privileged=true-p35455:35455--nameallinoneyoushandefeiyang/allinone 2、配置watchtower每天凌晨两点自动监听allinone镜像更新指令:dockerrun-d--namewatchtower--restartunless-stopped......
  • VulnHub-Empire_ LupinOne靶场
    1.kali虚拟机扫描端口(虚拟机与靶机均为NAT连接模式)2.登录网址3.扫描下目录,发现一个robots.txt文件4.访问下robots.txt文件5.访问下~myfiles文件6.用wfuzz进行扫描 http://ffuf-c-w/usr/share/wordlists/dirb/common.txt-u‘http://192.168.11.153/~FUZZ’7.......
  • vulnhub靶场Empire_LupinOne
    一、部署靶机靶机设置为nat模式开启靶机直接暴露靶机ip二、信息收集扫ip访问靶机地址扫目录dirbhttp://192.168.146.155dirsearch-uhttp://192.168.146.155扫端口nmap-sS-A-T4192.168.146.155//对靶机开放的端口进行更详细的扫描nmap-sC-......
  • 关于 scrapy 查询元素时 获取结果为 None 的解决办法
    classDoubanSpider(scrapy.Spider):name="douban"allowed_domains=["movie.douban.com"]start_urls=["https://movie.douban.com/chart"]defparse(self,response):titles=response.css('#conten......