css中有哪些方式可以隐藏页面元素及区别


Posted in HTML / CSS onJune 16, 2022

前言

在平常的样式排版中,我们经常遇到将某个模块隐藏的场景

通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的

但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法

实现方式

通过css实现隐藏元素方法有如下:

  • display:none
  • visibility:hidden
  • opacity:0
  • 设置height、width模型属性为0
  • position:absolute
  • clip-path

display:none

设置元素的displaynone是最常用的隐藏元素的方法

.hide {
        display:none;
    }

将元素设置为display:none后,元素在页面上将彻底消失

元素本身占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘

消失后,自身绑定的事件不会触发,也不会有过渡效果

特点:元素不可见,不占据空间,无法响应点击事件

visibility:hidden

设置元素的visibilityhidden也是一种常用的隐藏元素的方法

从页面上仅仅是隐藏该元素,DOM结果均会存在,只是当时在一个不可见的状态,不会触发重排,但是会触发重绘

.hidden{
        visibility:hidden
     }

给人的效果是隐藏了,所以他自身的事件不会触发

特点:元素不可见,占据页面空间,无法响应点击事件

opacity:0

opacity属性表示元素的透明度,将元素的透明度设置为0后,在我们用户眼中,元素也是隐藏的

不会引发重排,一般情况下也会引发重绘

如果利用 animation 动画,对 opacity 做变化(animation会默认触发GPU加速),则只会触发 GPU 层面的 composite,不会触发重绘

.transparent {
        opacity:0;
    }

由于其仍然是存在于页面上的,所以他自身的的事件仍然是可以触发的,但被他遮挡的元素是不能触发其事件的

需要注意的是:其子元素不能设置opacity来达到显示的效果

特点:改变元素透明度,元素不可见,占据页面空间,可以响应点击事件

设置height、width属性为0

将元素的marginborderpaddingheightwidth等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素

.hiddenBox {
        margin:0;     
        border:0;
        padding:0;
        height:0;
        width:0;
        overflow:hidden;
    }

特点:元素不可见,不占据页面空间,无法响应点击事件

position:absolute

将元素移出可视区域

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

特点:元素不可见,不影响页面布局

clip-path

通过裁剪的形式

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

特点:元素不可见,占据页面空间,无法响应点击事件

小结

最常用的还是display:nonevisibility:hidden,其他的方式只能认为是奇招,它们的真正用途并不是用于隐藏元素,所以并不推荐使用它们

区别

关于display: nonevisibility: hiddenopacity: 0的区别,如下表所示:

  display: none visibility: hidden opacity: 0
页面中 不存在 存在 存在
重排 不会 不会
重绘 不一定
自身绑定事件 不触发 不触发 可触发
transition 不支持 支持 支持
子元素可复原 不能 不能
被遮挡的元素可触发事件 不能

到此这篇关于css中有哪些方式可以隐藏页面元素及区别的文章就介绍到这了,更多相关css隐藏页面元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3 三维变形实现立体方块特效源码
Dec 15 HTML / CSS
表单button的outline在firefox浏览器下的问题
Dec 24 HTML / CSS
纯css3实现的竖形无限级导航
Dec 10 HTML / CSS
html5读取本地文件示例代码
Apr 22 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
May 12 HTML / CSS
浅析移动设备HTML5页面布局
Dec 01 HTML / CSS
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
Apr 26 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
详解px单位html5响应式方案
Mar 08 HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 HTML / CSS
纯CSS实现酷炫的霓虹灯效果
Apr 13 HTML / CSS
CSS 实现角标效果的完整代码
Jun 28 HTML / CSS
CSS控制继承中的height能变为可继承吗
Jun 10 #HTML / CSS
css样式important规则的正确使用方式
Jun 10 #HTML / CSS
分享几个实用的CSS代码块
Jun 10 #HTML / CSS
html中两种获取标签内的值的方法
Jun 10 #HTML / CSS
html5+实现plus.io进行拍照和图片等获取
Jun 01 #HTML / CSS
基于CSS制作创意端午节专属加载特效
聊聊CSS粘性定位sticky案例解析
Jun 01 #HTML / CSS
You might like
php记录日志的实现代码
2011/08/08 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
PHP之header函数详解
2021/03/02 PHP
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
python中的全局变量用法分析
2015/06/09 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
用Python实现随机森林算法的示例
2017/08/24 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
python os模块在系统管理中的应用
2020/06/22 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
优秀中学生事迹材料
2014/01/31 职场文书
大学生交通专业求职信
2014/09/01 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
写给老师的保证书
2015/05/09 职场文书
物业保安辞职信
2015/05/12 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS