当前位置: 首页 > Web前端 > HTML

第三种隐藏页面元素的方法

时间:2023-03-28 16:12:52 HTML

需求:从这个需求的字面意思来看,隐藏页面元素最简单的方法是什么?选择器{不透明度:0;不是吗?简单粗暴。但是,实际需求通常会在此需求的基础上增加额外的需求。例如:隐藏页面元素,仍然在页面中占据一个位置。隐藏的页面元素不在页面中占据一席之地。实现点击按钮将页面元素的内容复制到剪贴板。前两个需求比较常见,那么第三个需求是什么?和隐藏页面元素有什么关系?隐藏页面元素的常用方法及其区别visibility:hidden;显示:无;区别:可见性:隐藏;一个元素可以被隐藏,但是被隐藏的元素仍然需要占据和隐藏之前一样的空间。换句话说,虽然元素被隐藏了,但它仍然影响布局。显示:无;可以隐藏一个元素,隐藏的元素不会占用任何空间。也就是说,元素不仅被隐藏了,而且元素原本占据的空间也会从页面布局中消失。第三种隐藏页面元素的方式在日常开发中经常需要百度题,经常需要ctrl+c别人的代码。所以现在大部分的博客站点都支持代码的一键复制功能。该功能的总体思路是:在页面中添加一个隐藏文本区域;使用JavaScript获取要复制的文本值并将其分配给上一步创建的文本字段;使用select()选择文本字段的内容;使用本机接口文档.execCommand('copy');可以复制;如果第一步要实现隐藏文本域功能,如果使用visibility:hidden;或显示:无;可以实现基本的隐藏功能,但是不能实现一键复制功能。核心思想实现这个功能的关键点是使用定位和不透明度属性选择器{position:absolute;顶部:0;左:0;不透明度:0;z-index:-10;}具体代码下面是具体的实现代码:/*html*/12Copy

//javascripthandleClick=(event)=>{console.log('Copy成功')vartext=event.target.innerTextvarinput=document.getElementById('input')input.value=textinput.select()document.execCommand('copy')event.target.innerText='成功'}handleMouseLeave=(event)=>{event.target.innerText='Copy'}//css*,html,body{padding:0;边距:0自动;}.parent{位置:相对;高度:200px;宽度:200px;border:1pxsolid#81D8D0;}.child{display:flex;:中心;对齐项目:居中;位置:绝对;高度:100px;宽度:100px;顶部:50%;50%;转换:翻译(-50%,-50%);边框:1px实心#9C27B0;光标:指针;}#input{位置:绝对;顶部:0;左:0;不透明度:0;z-index:-10;}想想为什么用display和visibility属性达不到效果?为什么不能直接使用opacity:0;达到效果?