您现在的位置是:探索 >>正文
html怎么隐藏内容
探索2965人已围观
简介用 `display: none` 藏东西,是前端开发里最常见的手法。但很多人不知道,这个属性一加上去,元素连占位空间都没了,就像从来没存在过一样。上周帮同事调一个表单,他死活找不到一个报错提示为什么 ...
用 `display: none` 藏东西,隐藏是内容前端开发里最常见的手法。但很多人不知道,隐藏这个属性一加上去,内容元素连占位空间都没了,隐藏就像从来没存在过一样。内容上周帮同事调一个表单,隐藏他死活找不到一个报错提示为什么消失,内容最后发现是隐藏父级容器被加上了 `display: none`,整块区域直接塌了。内容
如果你想让元素看不见但保留它占的隐藏那块地儿,得用 `visibility: hidden`。内容这俩区别挺关键的隐藏。举个例子,内容做轮播图的隐藏时候,非当前帧的图片如果用 `display: none`,整个布局会跳一下;换成 `visibility: hidden`,位置还在,只是内容透明了,过渡动画会顺滑很多。我自己的习惯是,只要涉及位置稳定的场景,优先考虑 `visibility`。
还有一种更隐蔽的藏法:`opacity: 0`。元素完全透明,但依然在那里,能点击、能触发事件。有人拿它做自定义复选框的原始 input,视觉上没了,功能还在。不过要小心,屏幕阅读器可能还会读到它,无障碍这块得额外处理。
说到无障碍,`aria-hidden="true"` 是专门给辅助技术看的。它不改变视觉呈现,只告诉读屏软件“忽略这块”。和 CSS 隐藏配合用,效果更好。比如一个纯装饰性的图标,用 `aria-hidden` 加上 `font-size: 0` 或者 `color: transparent`,既不影响布局,也不会被读出来。
HTML 里还有个老古董:`hidden` 属性。写 `
再提一个场景:`` 标签。里面的内容默认不渲染,但也不是“隐藏”——它是惰性的,等着被 JavaScript 克隆出来用。跟 `display: none` 是两码事。有人拿它当隐藏容器存数据,结果发现取不到 `offsetHeight`,因为根本没进渲染树。
实际项目里,选哪种藏法取决于你要藏多久、藏了之后还要不要用。临时切换用 `display`,保留占位用 `visibility`,纯视觉透明用 `opacity`,给读屏软件屏蔽用 `aria-hidden`,初始不渲染用 ``。别小看这些细节,调布局的时候能省不少头发。
Tags:
上一篇:开展自查自纠 及时堵塞漏洞
下一篇:黑人帅气头像站长素材
相关文章
开盒网站免费
探索开盒网站的免费午餐,吃下去才知道是砒霜。 上个月,一个做电商的朋友半夜给我发来截图,她的手机号、家庭住址、甚至她儿子幼儿园的名字,被人挂在一个叫“XX查”的网站上。对方没提钱,只留了句“免费查询,精准 ...
【探索】
阅读更多如何整改
探索去年冬天,我住的小区换了物业。新来的经理姓周,四十出头,第一天就带着人在楼道里铲小广告。铲到三楼,一户人家的防盗门上贴了十七张,密密麻麻像鱼鳞。周经理没吭声,铲完拿湿抹布擦了三遍,门露出原来的墨绿色。 ...
【探索】
阅读更多铁塔
探索铁塔立在城西那片荒了快十年的空地上,浑身锈得发红。我搬来这个小区的时候它就在了,物业的人说那是个废弃的通讯塔,九十年代建的,后来运营商换了设备,新塔架在别处,它就没人管了。塔身大概四十米高,四根主柱之 ...
【探索】
阅读更多