首页 > 其他分享 >三种隐藏 HTML 元素的方式 ----记录

三种隐藏 HTML 元素的方式 ----记录

时间:2023-05-29 16:23:25浏览次数:50  
标签:元素 display ---- HTML hidden 页面 隐藏 属性

在网页应用中,显示/隐藏某个元素或组件是一件经常要做的事情,尤其是在目前比较流行的单页应用中。

总体而言,有 3 种方式来实现

CSS 的 display: none;
CSS 的 visibility: hidden;
HTML5 的 hidden 属性(boolean)
它们之间有相同点和不同点。相同点很简单,都能使添加了这个属性的元素及其子元素『不被看见』。这篇文章着重来比较一下它们之间的差异。

display: none;
添加了这个属性的元素:

不占据页面空间(不影响布局),因为这个属性不是让这个元素『不可见』,而是压根没有把它渲染出来
依旧可以通过 DOM API 来获取到
比如把它变成 display: block;
visibility: hidden;
添加了这个属性的元素:

仍占据页面空间(影响布局),仅仅让元素变“透明”,不画出来罢了
依旧可以通过 DOM API 来获取到
比如把它变成 visibility: visible;
HTML5 hidden
E.g. <p hidden>hello, world!</p>
添加了这个属性的元素:

不占据页面空间(不影响布局),未被渲染出来
什么情况下使用?
当这个元素和当前页面状态不相关时
这个元素仅仅用来被页面中的其它元素重复使用,提供某种信息,而非直接展示给用户使用时
总之,当此元素不应该被用户获取到时使用。(因此,不能把此元素链接给某个 href 上)
对比 display: none; 的优势在于,如果使用 display: none;,想要恢复显示时,该恢复成哪个值呢?block 吗?flex 吗?不好确定。但是使用 HTML5 的 hidden 属性就不存在这个问题了。
在易用性(Accessibility)方面,标注了 hidden 的元素不会被读屏器读到。
由于这个属性其实是用 CSS 实现的,所以,如果你给带有 HTML hidden 属性的元素,添加了 CSS display 属性,这个 display 属性会覆盖掉 HTML hidden 属性。

  

标签:元素,display,----,HTML,hidden,页面,隐藏,属性
From: https://www.cnblogs.com/liang715200/p/17440747.html

相关文章

  • canal+rabbitmq: Could not convert incoming message with content-type [null]
    SpringBoot整合Canal+RabbitMQ实现监听MySQL数据库同步更新Redis缓存,编写RabbitMQ消费端监听同步缓存。接收消息是字符串返回的是字节数据,eg:-30,-128,-100,-25,-126,-71,-27,-81,-71,-25,-126,-71,-30,-128,-99使用了jackson的converter后,报了如下的异常:Causedby:......
  • PHP 提取PDF文件内容
    这里以提取 亚马逊日期范围报告PDF汇总的数据根据路径下载PDF/***description:文件下载*@throwsCException*/publicfunctiongetFile($url,$save_dir='',$filename='',$type=0){if(trim($url)==''){......
  • 安装CentOS报错的一些问题
    问题:1、使用U盘安装CentOS7.6操作系统时,在选择“installCentOS7”后,在准备进入图形化界面安装之前,会报错dracut-initqueuetimeout,无法继续安装操作系统。此问题为系统引导中的LABEL默认安装源路径与U盘刻录后名称不匹配问题导致。如下LABEL=CentOS\x207\x20x86_64(\x20在......
  • pytest从入门到精通笔记
    一、pytest简介pytest是一个非常成熟的全功能的Python测试框架,比unittest更灵活,容易上手。主要有以下几个特点:1.简单灵活,容易上手2.支持参数化3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)4.pytest具......
  • 接口:综合案例
    packagecom.Demo4;publicclassTest{publicstaticvoidmain(String[]args){//目标:完成学生信息管理的实例ClassManageclassManage=newClassManage();classManage.printInfo();classManage.printScore();}}package......
  • 转:全面了解MSSQL锁机制以及应用
    转自:https://juejin.cn/post/68449038447243427981.锁概念及锁应用1.1锁的概念当用户并发对数据库进行操作时会带来数据不一致的问题,例如:更新丢失(两个用户读同一个数据并进行修改,一个用户破坏了另一个用户的修改结果)脏读(读出尚未提交事务的数据,产生了脏读)不可重复读(用户......
  • web基础漏洞-验证码爆破
    1、介绍这里的验证码是指在注册、登录、找回密码、重要操作验证身份时,服务端向用户的手机或者邮箱发送验证码,用户输入匹配成功以验证身份。验证码爆破漏洞,是服务端未进行次数和时间限制,或者允许的范围过大。导致攻击者可以反复尝试不同的验证码,以获取到正确的验证码。2、测试......
  • python 读取、写入、追加、覆盖xls文件
    python读取、写入、追加、覆盖xls文件0、写在前面测试源xls是这样的1、读取xlsdefread_xls(filename:str,sheet_name:str)->List[list]:filename=os.path.abspath(filename)assertos.path.isfile(filename),f'{filename}isnotfile'assertfilen......
  • C和C++的性能调优工具
    以下是C和C++的性能调优工具,包含工具介绍和链接:Valgrind:一款非常流行的内存调试和性能分析工具,可以检测内存泄漏、死锁等问题,并提供CPU性能分析工具。它可以跟踪程序中的所有内存分配和释放操作,并在程序执行时给出详细的报告。Valgrind是一个开源工具,支持Linux和MacOS等操......
  • c++ 模版元编程-00
    本系列文章从零开始介绍C++模版元编程,需要有C++基础。函数模版template<typenameT>Tadd(Tconsta,Tconstb){returna+b;}autoa=add(42,21);autod=add<double>(41.0,21);//无法自动推导类型的时候可以显示的指定类型类模版template<typenameT>......