CSS Display(显示) 与 Visibility(可见性)

CSS Display(显示) 与 Visibility(可见性)

以下是关于 CSS 中 display(显示)与 visibility(可见性)属性的中文详解,适合前端初学者或进阶者快速理解它们的区别、用法和应用场景。

一、display 属性(显示)

✅ 作用:

控制元素在页面中的布局行为,也就是:是否参与文档流、以何种形式渲染(块级、行内、弹性等)。

🔹 常见取值与说明:

属性值说明none元素隐藏且不占位,从页面结构中完全移除。block元素作为块级元素显示(独占一行、可设置宽高)。inline元素作为行内元素显示(不独占一行、不能设置宽高)。inline-block行内显示、但可以设置宽高。flex将元素设为弹性容器,用于 Flex 布局。grid将元素设为网格容器,用于 Grid 布局。table模拟表格布局。

📌 示例:

.box {

display: none; /* 不显示,且不占据空间 */

}

.nav {

display: flex; /* 弹性布局 */

}

二、visibility 属性(可见性)

✅ 作用:

控制元素是否可见,但它仍然占据空间!

🔹 常见取值与说明:

属性值说明visible默认值,元素可见。hidden元素不可见,但仍占据空间。collapse仅对表格有效,隐藏行/列并移除空间。

📌 示例:

.box {

visibility: hidden; /* 看不见,但仍占位 */

}

三、display: none 和 visibility: hidden 的区别

对比点display: nonevisibility: hidden是否显示❌ 不显示❌ 不显示是否占据空间❌ 不占据空间✅ 仍占据空间是否影响布局✅ 会影响其他元素布局❌ 不影响是否参与点击等交互❌ 不参与❌ 不参与动画/过渡❌ 无法平滑切换✅ 可与 opacity 结合做淡入淡出效果

四、常见使用场景

场景使用建议完全隐藏元素,不影响布局使用 display: none仅视觉隐藏,但保留布局结构使用 visibility: hidden动画过渡(淡入/淡出)用 visibility + opacity 结合 transition切换弹窗、Tab 内容区域推荐使用 display: none/block

五、动画淡入淡出示例(结合使用)

.fade {

transition: all 0.3s ease;

opacity: 1;

visibility: visible;

}

.fade.hidden {

opacity: 0;

visibility: hidden;

}

六、浏览器兼容性

属性兼容性display✅ 所有浏览器支持visibility✅ 所有浏览器支持

✅ 小结

属性控制什么?是否占位?常用于display显示方式/是否渲染❌ none 不占位切换区域、响应式布局visibility是否可见✅ 占位动画、保留布局结构

如你想了解 opacity、pointer-events 等与显示效果相关的属性,也可以继续问我!

相关推荐

山竹可以放冰箱保存嗎 山竹可以放多久
365bet最新备用网站

山竹可以放冰箱保存嗎 山竹可以放多久

07-01 👁️ 2366
多元视角下的傈僳族源流考释
亚洲365bet日博

多元视角下的傈僳族源流考释

09-18 👁️ 5749
中国3000万!美国4亿!英超版权费冰火两重天
亚洲365bet日博

中国3000万!美国4亿!英超版权费冰火两重天

08-10 👁️ 1240
御寒美食 大肉面独家
亚洲365bet日博

御寒美食 大肉面独家

09-16 👁️ 4992