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 25 HTML / CSS
基于css3实现漂亮便签样式
Mar 18 HTML / CSS
使用CSS3来制作消息提醒框
Jul 12 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
Aug 10 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
Dec 13 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
Jun 23 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
Mar 22 HTML / CSS
HTML5本地存储之IndexedDB
Jun 16 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
HTML5中的网络存储实现方式
Apr 28 HTML / CSS
关于HTML5+ API plusready的兼容问题
Nov 20 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
Jan 19 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
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
Django 导出 Excel 代码的实例详解
2017/08/11 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Python字符串的一些操作方法总结
2019/06/10 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Python 操作 MySQL数据库
2020/09/18 Python
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
《风筝》教学反思
2014/04/10 职场文书
创业融资计划书
2014/04/25 职场文书
火箭队口号
2014/06/18 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
大学生党员自我评价
2015/03/04 职场文书
亮剑观后感300字
2015/06/05 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python