AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
[TOC] ## display: none;与visibility: hidden;的区别 ### 相同点:它们都能让元素不可见 ### 区别: 1. display:none;会让元素完全从渲染树中消失,渲染的时候**不占据任何空间**; visibility: hidden;不会让元素从渲染树消失,渲染师元素继续**占据空间,只是内容不可见** 2. display: none;是**非继承**属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示; visibility: hidden;是**继承属性**,子孙节点消失由于继承了hidden,通过设置visibility: visible;可以让子孙节点显示 ~~~ <div class="border"> <div class="display"> <p>display</p> </div> <div class="visibility"> <p>visibility</p> </div> </div> <style> .display { display: none; width: 100px; height: 100px; background: palevioletred; } .visibility { visibility: hidden; width: 100px; height: 100px; background: darkslateblue; } .visibility>p{ visibility: visible; } .border{ border: 3px solid #ccc; } </style> ~~~ (修改常规流中元素的display通常会造成文档重排。修改visibility属性只会造成本元素的重绘。) (读屏器不会读取display: none;元素内容;会读取visibility: hidden;元素内容)