我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何隐藏Web中的元素方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何隐藏Web中的元素方法

这篇文章将为大家详细讲解有关如何隐藏Web中的元素方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

可访问性对visibility: hidden的影响

该元素被隐藏,其后代将从可访问性树中删除,并且屏幕阅读器不会渲染该元素。

(1) Positioning

要隐藏带有position属性的元素,我们应该将它移到屏幕外,并将其大小设置为0(宽度和高度)。个例子就是跳转导航链接。考虑下面的图:

如何隐藏Web中的元素方法

要将链接放置在屏幕之外,我们应该添加以下内容

「css」

.skip-link {     position: absolute;     top: -100%; }

值-100%将推动元素100%的视口高度。结果,它将被完全隐藏。一旦它聚焦在键盘上,它就会像这样显示出来

.skip-link:focus {     position: absolute;     top: 0; }

可访问性对position: absolute | fixed的影响

屏幕阅读器可访问该元素,并且键盘可聚焦。它只是从视口中隐藏起来。

Clip Path当在元素上使用clip-path时,它创建一个裁剪区域,该区域定义应该显示和隐藏哪些部分。

如何隐藏Web中的元素方法

在上面的例子中,透明的黑色区域有clip-path。当clip-path应用于元素时,透明黑色区域下的任何内容都不会显示。

为了更直观地演示以上内容,我将使用clippy工具。在下面的GIF中,我有如下的clip-path:

如何隐藏Web中的元素方法

将每个方向的多边形值设置为0 0,则裁剪区域的大小将调整为0。结果,图像将不会显示。同样,这也可以用一个圆来代替多边形:

img {     clip-path: circle(0 at 50% 50%); }

如何隐藏Web中的元素方法

可访问性对clip-path的影响

元素仅在视觉上隐藏, 屏幕阅读器和键盘焦点仍然可以使用它。

事例源码:

https://codepen.io/shadeed/pen/9fdbd7be9fd9dac17a614c96ba7f64b1?editors=0100

三、控制颜色和字体大小

虽然这两种技术不像我们前面讨论的那样常见,但它们可能对某些用例有用。

颜色透明

通过使文本的颜色透明,它将隐藏在视觉上。这对于只有图标的按钮非常有用。

字体大小

此外,将字体大小设置为0也很有用,因为这会在视觉上隐藏文本。考虑下面的示例,其中有一个具有以下结构的按钮:

<button>   <svg  width="24" height="24" viewBox="0 0 24 24" aria-hidden="false" focusable="false">     <!-- Path data -->   </svg>   <span>Like</span> </button>

我们的目标是以可访问的方式隐藏文本。为此,我添加了以下CSS

.button span {     color: transparent;     font-size: 0; }

这样,文本就被隐藏了。它甚至可以在不更改颜色的情况下工作,但是我出于解释目的添加了它。

如何隐藏Web中的元素方法

Aria Hidden

当向元素添加aria-hidden属性时,它将从可访问性树中删除该元素,这可以增强屏幕阅读器用户的体验。注意,它并没有在视觉上隐藏元素,它只针对屏幕阅读器用户

<button>     Menu     <svg  aria-hidden="true"><!-- --></svg> </button>

在上面的例子中,我们有一个带有标签和图标的菜单按钮。为了向屏幕阅读器隐藏图标,添加了aria-hidden。

根据Mozilla Developer Network (MDN),下面是属性的用例

  • 隐藏装饰性的内容,如图标、图像。

  • 隐藏复制文本。

  •  隐藏屏幕外或折叠的内容。

可访问性对aria-hidden="true"的影响

是为屏幕阅读器设计的,因为它只对屏幕阅读器隐藏内容。然而,内容对于有视力的用户仍然是可见的,并且键盘是可聚焦的。

(1) 动画与互动

当我们想让一个隐藏的元素动起来时,例如,显示隐藏的移动导航,它需要以一种可访问的方式来完成。为了获得一种可访问的体验,我们将探索一些值得学习的好例子,以及一些不好的例子,以避免犯可能会给屏幕阅读器用户带来不好体验的错误。

菜单动画-不好的例子

我们有一个菜单,在展开时需要有滑动动画。最简单的方法是在菜单中添加以下内容:

ul {     opacity: 0;     transform: translateX(100%);     transition: 0.3s ease-out; }  ul.active {     opacity: 1;     transform: translateX(0); }

有了上述内容,菜单将根据.active类展开和折叠,该类将通过 JavaScript 如下添加:

menuToggle.addEventListener('click', function(e){   e.preventDefault();   navMenu.classList.toggle('active'); });

如何隐藏Web中的元素方法

结果可能看起来不错,但它有一个很大的错误。使用opacity: 0不会隐藏可访问性树的导航。即使导航在视觉上是隐藏的,它仍然可以通过键盘聚焦,并且可以被屏幕阅读器访问。必须将其隐藏以避免混淆用户。

下面是来自Chrome开发工具的 accessibility tree 的截图:

如何隐藏Web中的元素方法

简而言之,accessibility tree是屏幕阅读器用户可以访问的所有内容的列表。在我们的例子中,导航列表在那里,而它在视觉上是隐藏的。我们需要解决两个问题:

  • 菜单隐藏时避免用键盘聚焦

  • 当导航隐藏时,避免通过屏幕阅读器告知导航

下面的屏幕截图显示了Mac OS上的VoiceOver转子是如何看到页面的。导航列表在那里,而它是隐藏的

如何隐藏Web中的元素方法

菜单动画-好的例子

为了修正这个错误,我们需要使用visibility: hidden作为导航菜单。这将确保菜单是隐藏的视觉和屏幕阅读器。

「css」

ul {     visibility: hidden;     opacity: 0;     transform: translateX(100%);     transition: 0.3s ease-out; }  ul.active {     visibility: visible;     opacity: 1;     transform: translateX(0); }

添加后,菜单将从屏幕阅读器中隐藏。让我们再次测试,看看VoiceOver将显示什么:

如何隐藏Web中的元素方法

自定义复选框

默认的复选框设计很难自定义,因此,我们需要为复选框创建自定义设计。让我们看看基本的 HTML:

<p  class="c-checkbox">   <input  class="sr-only" type="checkbox" name="" id="c1">   <label  class="c-checkbox__label" for="c1">Custom checkbox</label> </p>

要自定义复选框,我们需要以一种可访问的方式隐藏输入。为此,应该使用position和其他属性。有一个常见的CSS类,称为sr-only或visual -hidden,它只在视觉上隐藏一个元素,并让键盘和屏幕阅读器用户可以访问它。

.sr-only {   border: 0;   clip: rect(0 0 0 0);   -webkit-clip-path: polygon(0px 0px, 0px 0px, 0px 0px);   clip-path: polygon(0px 0px, 0px 0px, 0px 0px);   height: 1px;   margin: -1px;   overflow: hidden;   padding: 0;   position: absolute;   width: 1px;   white-space: nowrap; }

隐藏按钮

如何隐藏Web中的元素方法

在Twitter上,有一个名为“查看新推文”(See New Tweets)的按钮,对于带有aria-hidden内容的屏幕阅读器来说是隐藏的,只有在有新推文可用时才会显示出来。

关于“如何隐藏Web中的元素方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何隐藏Web中的元素方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何隐藏Web中的元素方法

这篇文章将为大家详细讲解有关如何隐藏Web中的元素方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。可访问性对visibility: hidden的影响该元素被隐藏,其后代将从可访问性树中删除,并且屏幕阅
2023-06-08

html中如何隐藏元素

HTML中隐藏HTML是一种用于构建网页的标记语言,它可以帮助我们将文本、图片、音频、视频等多种媒体元素组合在一起,以创建漂亮、交互性强的网页。在Web开发中,我们经常需要使用一些技巧来隐藏一些元素,比如隐藏一些敏感信息、防止页面被恶意抓取等等。那么在HTML中,我们可以如何隐藏元素呢?1. 隐藏元素的display属性在HTML中,我们可以通过修改元素的display属性来隐
2023-05-14

vue如何隐藏元素

这篇文章给大家分享的是有关vue如何隐藏元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue隐藏元素的方法:1、使用“v-if”指令,通过动态的向DOM树内添加或者删除DOM元素的方式来显示或隐藏元素;2、使
2023-06-25

jQuery如何隐藏元素?

jQuery是一款JavaScript库,提供了简单而高效的方法来隐藏元素。它支持多种隐藏方法,包括hide()、slideUp()、fadeOut()、toggle()等,每种方法都有其独特的动画效果和使用场景。通过提供易于使用的函数和灵活的隐藏选项,jQuery帮助开发者轻松地管理页面的元素可见性,丰富用户交互体验。
jQuery如何隐藏元素?
2024-04-08

web前端:CSS3--3种隐藏元素方法的区别

编程学习网:css3规范的一个新特点是被分为若干个相互独立的模块。一方面分成若干较小的模块较利于规范及时更新和发布,及时调整模块的内容,这些模块独立实现和发布,也为日后CSS的扩展奠定了基础。另外一方面,由于受支持设备和浏览器厂商的限制,没备或者厂商可以有选择的支持一部分模块,支持css3的一个子集,这样有利于CSS3的推广。
web前端:CSS3--3种隐藏元素方法的区别
2024-04-23

如何在html中隐藏div元素

这篇文章将为大家详细讲解有关如何在html中隐藏div元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,
2023-06-14

如何在html中让元素隐藏

本篇文章给大家分享的是有关如何在html中让元素隐藏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录