Tailwind CSS 显示与隐藏

Tailwind CSS 显示与隐藏语法

在 Tailwind CSS 中,我们主要使用 display 属性和 visibility 属性来定义元素的显示与隐藏。

1. display 相关类名

在 Tailwind CSS 中,我们可以使用 display 属性相关的类名来显示或隐藏元素。其中,常用的类名如下表所示。

display 相关类名
类名 对应 CSS 说明
hidden display: none; 彻底隐藏
block display: block; 显示为 “块级元素”
flex display: flex; 显示为 “弹性盒子”
inline display: inline; 显示为 “行内元素”

使用 display 相关类名来隐藏元素时,该元素将不再占据任何网页空间。

2. visibility 相关类名

在 Tailwind CSS 中,我们还可以使用 visibility 属性相关的类名来显示或隐藏元素。其中,常用的类名如下表所示。

visibility 相关类名
类名 对应 CSS 说明
invisible visibility: hidden; 不可见(但仍占位)
visible visibility: visible; 可见

使用 visibility 相关类名来隐藏元素时,虽然元素看不见,但依然会占据原本的网页空间。

示例 1:两种隐藏方式对比

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <script src="https://unpkg.com/@tailwindcss/browser@4"></script>
</head>
<body class="p-10">
    <div class="bg-gray-200 p-4">
        <span class="bg-red-400">盒子 A</span>
        <span class="hidden bg-green-400">盒子 B</span>
        <span class="bg-blue-400">盒子 C</span>
    </div>
    <div class="bg-gray-200 p-4 mt-8">
        <span class="bg-red-400">盒子 A</span>
        <span class="invisible bg-green-400">盒子 B</span>
        <span class="bg-blue-400">盒子 C</span>
    </div>
</body>
</html>

页面效果如下图所示。

Tailwind CSS 两种隐藏方式对比

分析:

第 1 个 div 中,由于中间的 “盒子 B” 使用了 hidden,它会在文档流中彻底消失。因此最终 “盒子 A” 和 “盒子 C” 会紧紧挨在一起。

第 2 个 div 中,中间的 “盒子 B” 使用了 invisible。虽然你看不见它了,但它原本占据的空间还在,所以 “盒子 A” 和 “盒子 C” 之间留下了一块空白。

Tailwind CSS 响应式显示与隐藏

在实际开发中,经常会遇到这样一种场景:有些复杂的侧边栏或大图,然后我们希望它们在手机端隐藏起来,但在电脑端显示出来。

示例 2:响应式显隐

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <script src="https://unpkg.com/@tailwindcss/browser@4"></script>
</head>
<body class="p-10">
    <div class="hidden md:block p-10 bg-blue-400 text-white rounded">
        绿叶网 - 为好教程,全力以赴
    </div>
</body>
</html>

当屏幕尺寸小于 768px(手机尺寸)时,页面效果如下图 1 所示。当屏幕尺寸大于等于 768px 时,页面效果如下图 2 所示。

Tailwind CSS 响应式显隐(1)

Tailwind CSS 响应式显隐(2)

分析:

hidden md:block 是一个非常经典的组合。它表示:默认情况下(即手机端)直接隐藏,当屏幕宽度达到 md 级别时,再将其恢复为 block 显示出来。

关于响应式的内容,我们在后面 “Tailwind CSS 响应式设计” 一节中会详细介绍,这里小伙伴们简单了解一下即可。

常见问题

1. hidden、invisible 和 opacity-0 这 3 种隐藏方式到底有什么区别呢?

这是前端面试中出现频率极高的一道题,也是新手在做页面交互时最容易踩的坑。在 Tailwind CSS 中,它们分别对应 3 种完全不同的业务场景:

  • hidden(display: none):彻底消失。不占位置,无法被点击,无法参与任何 CSS 过渡动画(transition)。
  • invisible(visibility: hidden):隐身占位。看不见,但保留原有的空间位置,无法被点击。
  • opacity-0(opacity: 0):全透明。看不见,保留位置,依然可以被点击触发事件,且完美支持淡入淡出动画。
给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号