Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CSS隐藏元素的方法

CSS隐藏元素的方法

作者头像
WindRunnerMax
发布于 2020-08-27 02:56:17
发布于 2020-08-27 02:56:17
2.7K00
代码可运行
举报
文章被收录于专栏:Czy‘s BlogCzy‘s Blog
运行总次数:0
代码可运行

CSS隐藏元素的方法

使用CSS隐藏元素的主要方式有diaplay: none;opacity: 0;visibility: hidden;position: absolute; overflow: hidden;clip-path: polygon(0 0, 0 0, 0 0, 0 0);height: 0; overflow: hidden;

diaplay

display: none;属性依照词义是真正隐藏元素,使用这个属性,被隐藏的元素不占据任何空间,用户交互操作例如点击事件都不会生效,读屏软件也不会读到元素的内容,这个元素的任何子元素也会同时被隐藏。当使用该属性将元素从显示状态切换为隐藏状态时,元素不占据原本的空间,会触发浏览器的重绘与回流。为这个属性添加过渡动画是无效的,他的任何不同状态值之间的切换总是会立即生效。这种方式产生的效果就像元素完全不存在,但在DOM中依然可以访问到这个元素,也可以通过DOM来操作它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    .display-hide{
        display: none;
    }
</style>

<section>
    <div id="t1"></div>
</section>

<script type="text/javascript">
    document.getElementById("t1").addEventListener("click", e => {
        alert("第一次点击会隐藏,此后再也无法点击");
        e.srcElement.classList.add("display-hide");
    })
</script>

opacity

opacity是用以设置透明度的属性,将opacity设置为0只能从视觉上隐藏元素,而元素本身依然占据它自己的位置并对网页的布局起作用,它也将响应用户交互例如点击事件,对于其添加过渡属性可以显示动画效果。对于opacity属性,可以利用其透明的视觉效果制作点击劫持攻击。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    .opacity-hide{
        opacity: 0;
    }
</style>

<section>
    <div id="t2">opacity</div>
</section>

<script type="text/javascript">
    document.getElementById("t2").addEventListener("click", e => {
        alert("第一次点击会透明,依旧占据原本位置,点击事件依旧有效,动画过渡效果生效");
        e.srcElement.classList.add("opacity-hide");
    })
</script>

visibility

visibility属性值为hidden的时候,元素将会隐藏,也会占据着自己的位置,并对网页的布局起作用,与opacity不同的是它不会响应任何用户交互,元素在读屏软件中也会被隐藏,如果对于子元素的visibility被设置为visible而父元素的visibility设置为hidden,子元素依旧可以显示而父元素会被隐藏。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    .visibility-hide{
        visibility: hidden;
    }
</style>

<section>
    <div id="t3">
        <div>visibility</div>
        <div style="visibility: visible; color: #000;">still show</div>
    </div>
</section>

<script type="text/javascript">
    document.getElementById("t3").addEventListener("click", e => {
        alert("第一次点击会隐藏,依旧占据原本位置,点击事件不再生效");
        e.srcElement.classList.add("visibility-hide");
    })
</script>

position

使用positionoverflow属性的意义就是把元素脱离文档流移出视觉区域,超出屏幕显示的部分隐藏掉,使用这两个属性隐藏主要就是通过控制方向topleftrightbottom达到一定的值,离开当前显示区域并将超出部分裁剪,此外在未隐藏时设定好相关样式,在动态添加class时即可实现过渡动画。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    body{
        overflow: hidden;
    }
    
    .posistion-origin{
        position: absolute;
        left: 5px;
        top: 5px;
    }

    .position-hide{
        left: -150px;
    }
</style>

<section style="position: relative;height: 115px;">
    <div id="t4" class="posistion-origin" >position</div>
</section>

<script type="text/javascript">
    document.getElementById("t4").addEventListener("click", e => {
        alert("第一次点击会隐藏,元素不占据原本位置,过渡动画有效");
        e.srcElement.classList.add("position-hide");
    })
</script>

clip-path

clip-path属性使用裁剪方式创建元素的可显示区域,区域内的部分显示,区域外的隐藏,直接将元素裁剪之后即可实现隐藏效果,该属性兼容性一般,具体可以查阅https://caniuse.com/#search=clip-path

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    .clip-path-hide{
        clip-path: polygon(0 0, 0 0, 0 0, 0 0);
    }
</style>

<section>
    <div id="t5" >clip-path</div>
</section>

<script type="text/javascript">
    document.getElementById("t5").addEventListener("click", e => {
        alert("第一次点击会隐藏,元素占据原本位置,点击事件不再生效");
        e.srcElement.classList.add("clip-path-hide");
    })
</script>

height

类似于positionoverflow的组合,使用height: 0;将元素高度设置为0,使用overflow: hidden将超出部分裁剪隐藏,即可实现隐藏效果,如果需要使用这两个属性制呈现过渡动画的话,需要将height给予一个确定的值,不能是auto

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style type="text/css">
    .height-hide{
        height: 0 !important;
        overflow: hidden;
    }
</style>

<section>
    <div id="t6" >height</div>
</section>

<script type="text/javascript">
    document.getElementById("t6").addEventListener("click", e => {
        alert("第一次点击会隐藏,元素不占据原本位置,点击事件不再生效,过渡动画有效");
        e.srcElement.classList.add("height-hide");
    })
</script>

代码示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
<head>
    <title>隐藏元素</title>
    <style type="text/css">

        body{
            overflow: hidden;
        }

        section > div:first-child{
            width: 100px;
            height: 100px;
            background-color: blue;
        }

        section{
            border-bottom: 1px solid #eee;
            padding: 5px;
            box-sizing: border-box;
        }

        div{
            color: #fff;
            transition: all .3s;
        }

        .display-hide{
            display: none;
        }

        .opacity-hide{
            opacity: 0;
        }

        .visibility-hide{
            visibility: hidden;
        }

        .posistion-origin{
            position: absolute;
            left: 5px;
            top: 5px;
        }

        .position-hide{
            left: -150px;
        }

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

        .height-hide{
            height: 0 !important;
            overflow: hidden;
        }

    </style>
</head>
<body>
    <section>
        <div id="t1">display</div>
    </section>

    <section>
        <div id="t2">opacity</div>
    </section>

    <section>
        <div id="t3">
            <div>visibility</div>
            <div style="visibility: visible; color: #000;">still show</div>
        </div>
    </section>

    <section style="position: relative;height: 115px;">
        <div id="t4" class="posistion-origin" >position</div>
    </section>

    <section>
        <div id="t5" >clip-path</div>
    </section>

    <section>
        <div id="t6" >height</div>
    </section>
</body>
    <script type="text/javascript">
        document.getElementById("t1").addEventListener("click", e => {
            alert("第一次点击会隐藏,此后再也无法点击");
            e.srcElement.classList.add("display-hide");
        })

        document.getElementById("t2").addEventListener("click", e => {
            alert("第一次点击会透明,依旧占据原本位置,点击事件依旧有效,动画过渡效果生效");
            e.srcElement.classList.add("opacity-hide");
        })

        document.getElementById("t3").addEventListener("click", e => {
            alert("第一次点击会隐藏,依旧占据原本位置,点击事件不再生效");
            e.srcElement.classList.add("visibility-hide");
        })

        document.getElementById("t4").addEventListener("click", e => {
            alert("第一次点击会隐藏,元素不占据原本位置,过渡动画有效");
            e.srcElement.classList.add("position-hide");
        })

        document.getElementById("t5").addEventListener("click", e => {
            alert("第一次点击会隐藏,元素占据原本位置,点击事件不再生效");
            e.srcElement.classList.add("clip-path-hide");
        })

        document.getElementById("t6").addEventListener("click", e => {
            alert("第一次点击会隐藏,元素不占据原本位置,点击事件不再生效,过渡动画有效");
            e.srcElement.classList.add("height-hide");
        })
    </script>
</html>

每日一题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/WindrunnerMax/EveryDay

参考

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.cnblogs.com/jing-tian/p/10969109.html
https://blog.csdn.net/cuo9958/article/details/53559826
https://blog.csdn.net/weixin_41910848/article/details/81875725
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
❤️使用 HTML、CSS 和 JS 创建在线音乐播放器(含免费完整源码)❤️
在我们开始编写代码之前。虽然它不是 Nodejs 应用程序,但我们至少应该看到它的文件夹结构。
海拥
2021/09/22
8.6K0
❤️使用 HTML、CSS 和 JS 创建在线音乐播放器(含免费完整源码)❤️
CSS中用 opacity、visibility、display 属性将 元素隐藏 的 对比分析
opacity 用来设置透明度 display 定义建立布局时元素生成的显示框类型 visibility 用来设置元素是否可见。 opacity、visibility、display 这三个属性分别取值 0、hidden、none 都能使元素在页面上看不见,但是他们在方方面面都还是有区别的。
FEWY
2019/05/26
1.8K0
Web Accessibility基础:构建无障碍的前端应用
Web Accessibility(网络无障碍)是确保所有人都能平等访问和使用网站和应用程序的关键。这包括视觉、听觉、运动和认知能力有限的用户。以下是一些构建无障碍前端应用的基础原则和代码示例:
天涯学馆
2024/08/19
1660
typecho博客魔改常用代码
如果出现不显示效果的情况,因为此代码基于 jquery,请在网页头部加入如下代码:
王荣胜
2020/03/13
2.4K0
typecho博客魔改常用代码
CSS实现渐隐渐现效果
实现渐隐渐现效果是比较常见的一种交互方式,通常的做法是控制display属性值在none和其它值之间切换,虽说功能可以实现,但是效果略显生硬,所以会有这样的需求——希望元素消失时具有平滑的效果。
WindRunnerMax
2021/02/05
4K0
用 CSS 隐藏页面元素的 5 种方法
用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。
疯狂的技术宅
2019/03/28
2.1K0
第55天:简单冒泡方法原理
事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。
半指温柔乐
2018/09/11
4340
蒙层禁止页面滚动的方案
弹窗是一种常见的交互方式,而蒙层是弹窗必不可少的元素,用于隔断页面与弹窗区块,暂时阻断页面的交互。但是在蒙层出现的时候滚动页面,如果不加处理,蒙层底部的页面会开始滚动,实际上我们是不希望他进行滚动的,因此需要阻止这种行为。当弹出蒙层时禁止蒙层下的页面滚动,也可以称为滚动穿透的问题,文中介绍了一些常用的解决方案。
WindRunnerMax
2022/05/06
6.5K0
用 CSS 隐藏页面元素
用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。
全栈程序员站长
2022/08/09
1.6K0
CSS魔法堂:Transition就这么好玩
 以前说起前端动画必须使用JS,而CSS3为我们带来transition和@keyframes,让我们可以以更简单(声明式代替命令式)和更高效的方式实现UI状态间的补间动画。本文为近期对Transition的学习总结,欢迎各位拍砖。
^_^肥仔John
2018/06/21
5360
基于 HTML+CSS+JS 的纸牌记忆游戏
这节博客我们将使用 HTML、CSS 和 JavaScript 制作纸牌记忆游戏。
海拥
2022/04/13
2.8K0
基于 HTML+CSS+JS 的纸牌记忆游戏
display: none、visibility: hidden和opacity: 0的区别
display: none 和 opacity: 0,子元素会和父元素一样保持不可见。
lonelydawn
2022/09/27
8930
display: none、visibility: hidden和opacity: 0的区别
css补充、JavaScript、Dom
css补充: position: fixed:可以将标签固定在页面的某个位置 absolute+relative:通过两者的结合可以让标签在一个相对的位置 代码例子:(通过fixed标签将某些内容固定
coders
2018/01/04
1.2K0
css补充、JavaScript、Dom
【Html.js——功能实现】布局切换(蓝桥杯真题-18556)【合集】
Rossy Yan
2025/02/21
1270
【Html.js——功能实现】布局切换(蓝桥杯真题-18556)【合集】
聊聊 CSS 隐藏元素的 10 种实用方法
这是一个在初级 web 前端面试中可能常会提及的问题,聊这个话题不仅仅只是讨论“茴”字有几种写法,更是能从一个简单的问题中体现出你的 CSS 边界能力,本文提炼了十种最实用的方法,希望对你有所帮助。
茶无味的一天
2023/04/14
1.4K0
基于HTML5打造的一款别踩白板小游戏
别踩白板这个游戏相信大家都玩过,这个是基于HTML5打造的简单小游戏,在PC端和移动端都能够运行,适应多种平台,今天我们使用原生JS搭配JQuery构建这个小游戏--别踩白板。
前端皮皮
2021/11/19
1.1K0
基于HTML5打造的一款别踩白板小游戏
光标有反转效果的侧边导航(附源代码)
这是一个侧边导航效果,这个展开的效果给人一种很柔和的感觉,展开后菜单内容依次显示,最后是增加了一个聚焦的圆跟随光标移动,当遇到菜单内容时会放大圆形并反转显示菜单文字,加深了对导航的交互,这里的反转色基于 mix-blend-mode: difference 实现。这个效果还有两个主题色切换,有兴趣的可以在线看效果。
半夜喝可乐
2024/10/10
1430
光标有反转效果的侧边导航(附源代码)
JS事件冒泡及阻止
当一个元素接收到事件的时候,会把他接收到的事件传给自己的父级,一直到window,当然其传播的是事件,绑定的执行函数并不会传播,如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现,但事件确实传递了。 事件冒泡的原因是事件源本身可能没有处理事件的能力,即处理事件的函数并未绑定在该事件源上。它本身并不能处理事件,所以需要将事件传播出去,从而能达到处理该事件的执行函数。
WindRunnerMax
2020/08/27
6.7K0
深藏在CSS里的诗情画意(十个原创的CSS特效,不容错过)
很多的碎碎念都用都用 HTML 跟 CSS 来记录在我的codepen https://codepen.io/krischan77 之上,眼见积累到了一些了,就选出几个来与大家一同分享。
陈大鱼头
2020/04/16
7870
深藏在CSS里的诗情画意(十个原创的CSS特效,不容错过)
超实用:Vue 自定义指令合集
在 Vue2.0 中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。
@超人
2021/05/24
2.2K0
超实用:Vue 自定义指令合集
相关推荐
❤️使用 HTML、CSS 和 JS 创建在线音乐播放器(含免费完整源码)❤️
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验