搜索
首页web前端css教程如何隐藏css元素

如何隐藏css元素

Nov 15, 2018 pm 05:14 PM
css隐藏元素

如何隐藏css元素?本篇文章就给大家介绍5种隐藏css元素的方法,让大家了解可以怎么隐藏css元素,以及使用这些方法隐藏元素时需要记住的细微差别。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

首先我们简单介绍一下隐藏css元素的5种方法,分别为:

1、使用opacity属性来隐藏元素

2、使用visibility属性来隐藏元素

3、使用display属性来隐藏元素

4、使用position属性来隐藏元素

5、使用clip-path属性来隐藏元素

下面我们来详细介绍一下这5种隐藏css元素的方法,让大家了解它们之间的细微差别。

opacity属性

opacity属性是通过设置元素的透明度来隐藏元素的。它的设计不会以任何方式改变元素的边界框。这就意味着将不透明度设置为零只会在视觉上隐藏元素;元素仍然占据其位置并影响网页的布局,它还会响应用户交互。

.hide {
  opacity: 0;
}

如果你打算使用opacity属性来隐藏屏幕阅读器中的元素,很遗憾,这是不可能的。因为屏幕阅读器将读取元素及其所有内容,就像网页上的所有其他元素一样。

我还应该提一下,opacity属性被动画化,并用于创建一些出色的效果。例:

HTML代码:

<div>1</div>
<div class="o-hide">2</div>
<div>3</div>

css代码:

.o-hide {
  opacity: 0;
  transition: all ease 0.8s;
}

.o-hide:hover {
  opacity: 1;
}

效果图:

1.gif

当将鼠标悬停在隐藏的第二个块上时,该元素将从完全透明的状态平滑过渡到完全不透明。该模块还设置了cursor:pointer,以显示它可以与之交互。

visibility属性

visibility属性是通过设置是否可见,来隐藏元素的。当设置visibility属性的值为hidden将隐藏我们的元素。

visibility属性就和opacity属性一样,隐藏元素仍会影响我们网页的布局。唯一的区别是,这次当用户隐藏时,它不会捕获任何用户交互。此外,该元素也将对屏幕阅读器隐藏。

只要初始状态和最终状态具有不同的值,此属性也能够进行动画处理。这确保了可见性状态之间的过渡可以是平滑的而不是突然的。

这个演示展示了visibility区别于opacity的地方:

HTML代码:

<div>1</div>
<div class="o-hide"><p>2</p></div>
<div>3</div>

css代码:

.o-hide {
  visibility: hidden;
  transition: all ease 0.8s;
}
.o-hide:hover {
  visibility: visible;
}
.o-hide p {
  visibility: visible;
  margin: 0;
  padding: 0;
}

js代码:

var oHide = document.querySelector(".o-hide");
var oHideP = document.querySelector(".o-hide p");
var count = oHideP.innerHTML;

oHide.addEventListener("click", function(){
    count++;
    oHideP.innerHTML = count;
});

效果图:

2.gif

请注意,如果将属性显式设置为visibility,则设置visibility为hidden的元素的后代仍然可见。尝试将鼠标悬停在隐藏元素上而不是内部段落上,将看到光标不会变为指针。此外,如果你尝试单击该元素,则您的点击也不会被响应。

dc6dce4a544fdca2df29d5ac0ea9906b标签内的e388a4556c0f65e1904146cc1a846bee标签仍然会捕获所有的鼠标事件。当你在文本上徘徊时,dc6dce4a544fdca2df29d5ac0ea9906b本身就变得可见并开始响应事件。

display属性

display属性是真正意义上的隐藏了元素,设置display属性的值为none,可以确保根本不生成框模型;且使用此属性,隐藏元素时不会留下空白空间。不仅如此,只要display设置为none,任何直接用户交互都是不可能的。此外,屏幕阅读器也不会读取元素的内容。就好像元素不存在一样。

而,我们元素的所有后代也将被隐藏。此属性无法设置动画,因此各种状态之间的转换始终是突然的。

请注意,该元素仍可通过DOM访问。你可以像使用任何其他元素一样操纵它。例:

HTML代码:

<div>Hover!</div>
<div class="o-hide"><p>0</p></div>
<div>0</div>

css代码:

.o-hide {
  display: none;
  transition: all ease 0.8s;
}

.o-hide:hover {
  display: block;
}

.o-hide p {
  display: block;
  margin: 0;
  padding: 0;
}

js代码:

var count = 0;
var oHide = document.querySelector(".o-hide");
var firstDiv = document.querySelector("div:nth-child(1)");

firstDiv.addEventListener("mouseover", function(){
    count++;
    oHide.innerHTML = &#39;<p>&#39; + count + &#39;</p>&#39;;
});

firstDiv.addEventListener("click", function(){
  oHide.style.display = "block";
});

效果图:

3.gif

可以看到第二块有一个p段落,其display属性设置为block,但该段仍然是看不见的。这就是visibility:hidden和display: none的一个区别。在第一种情况下,任何明确设置visibility为visible的后代都将变为可见,但这不会发生display属性里。设置display: none后,所有的后代都被隐藏起来,不管他们的展示有多大价值。

现在,在演示的第一个块上悬停几次。做过徘徊?单击第一个块。这应该使第二个块可见。里面的计数现在应该是零以外的数字。这是因为即使对用户隐藏的元素仍然可以使用JavaScript进行操作

position属性

假设你有一个要与之交互的元素,但又不希望它影响网页布局。到目前为止,没有任何属性可以正确处理这种情况。在这种情况下,你可以做的一件事,那就是将元素移出视图窗口。这样它不会影响布局,仍然可以操作。

以下演示说明绝对定位如何隐藏元素和工作方式与上一个演示大致相同(html代码一样):

css代码:

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

.o-hide:hover {
  position: static;
}

js代码:

var count = 0;
var oHide = document.querySelector(".o-hide");
var firstDiv = document.querySelector("div:nth-child(1)");

firstDiv.addEventListener("mouseover", function(){
    count++;
    oHide.innerHTML = count;
});

firstDiv.addEventListener("click", function(){
    oHide.style.position = "static";
});

效果图:

4.gif

这里的主要思想是将负的顶部和左侧值设置得足够高,以使元素在屏幕上不再可见。该技术的一个好处(或潜在的缺点)是屏幕阅读器可以读取绝对定位元素的内容。这是完全可以理解的,因为你只将元素移出视图窗口,以便用户无法看到它。

你应该避免使用此方法隐藏任何可以获得焦点的元素,因为当用户关注该元素时会导致意外跳转。此方法经常用于创建自定义复选框或单选按钮。

clip-path属性

隐藏元素的另一种方法是剪切它们。以前,这可以通过clip属性来完成,但是已经弃用了有利于更好的属性clip-path。

请注意,IE或Edge尚未完全支持下面clip-path属性值的使用。这是一个展示它的示例演示:

css代码:

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

js代码:

var count = 0;
var oHide = document.querySelector(".o-hide");
var firstDiv = document.querySelector("div:nth-child(1)");

firstDiv.addEventListener("mouseover", function(){
    count++;
    oHide.innerHTML = count;
});


firstDiv.addEventListener("click", function(){
    oHide.className = "";
});

效果图:

5.gif

如果将鼠标悬停在第一个元素上,它仍然可以影响第二个元素,即使它被clip-path属性隐藏。如果单击该元素,它将删除隐藏的类以显示我们一直存在的元素。这个文本仍然可以被屏幕阅读器阅读。

即使我们的元素不再可见,它周围的元素仍然表现得像它原来的矩形尺寸。请记住,在悬停区域之外,像悬停或点击等用户交互是不可能的。在我们的例子中,这意味着用户将无法直接与隐藏元素交互。此外,该属性能够以各种方式被动画化以产生新的效果。

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

以上是如何隐藏css元素的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
什么是CSS网格?什么是CSS网格?Apr 30, 2025 pm 03:21 PM

CSS网格是创建复杂,响应式Web布局的强大工具。它简化了设计,提高可访问性并提供了比旧方法更多的控制权。

什么是CSS Flexbox?什么是CSS Flexbox?Apr 30, 2025 pm 03:20 PM

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

我们如何使用CSS使网站迅速响应?我们如何使用CSS使网站迅速响应?Apr 30, 2025 pm 03:19 PM

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

CSS盒装属性有什么作用?CSS盒装属性有什么作用?Apr 30, 2025 pm 03:18 PM

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。

我们如何使用CSS动画?我们如何使用CSS动画?Apr 30, 2025 pm 03:17 PM

文章讨论使用CSS,关键属性并与JavaScript结合创建动画。主要问题是浏览器兼容性。

我们可以使用CSS向我们的项目添加3D转换吗?我们可以使用CSS向我们的项目添加3D转换吗?Apr 30, 2025 pm 03:16 PM

文章讨论了Web项目的3D转换,关键属性,浏览器兼容性和性能注意事项的讨论。(角色计数:159)

我们如何在CSS中添加梯度?我们如何在CSS中添加梯度?Apr 30, 2025 pm 03:15 PM

文章讨论了使用CSS梯度(线性,径向,重复)来增强网站视觉效果,添加深度,焦点和现代美学。

CSS中的伪元素是什么?CSS中的伪元素是什么?Apr 30, 2025 pm 03:14 PM

文章讨论了CSS中的伪元素,它们在增强HTML样式方面的使用以及与伪级的差异。提供实用的例子。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具