HTMLElement.hidden

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

HTML 元素hidden 属性是一个 Boolean 类型的值,如果想要隐藏元素,就将值设置为 true,否则就将值设置为false。这完全不同于使用 CSS 属性 display 来控制一个元素的可见性。

hidden 属性应用于所有展现模式,并且不应用于隐藏用户可直接访问的内容。

适用的情况,包括:

  • 目前还不相关但将来可能会被用到的内容
  • 之前还需要但现在不再被需要用到的内容
  • 以类似于模板的方式被页面的其他部分所重复使用的内容
  • 创建一个屏幕上不可见的画布来作为绘制的缓冲区

不适用的情况,包括

  • 隐藏选项卡的对话框中的面板
  • 隐藏一个演示文稿中的内容,同时又希望这个内容在其他演示文稿中是可见的

备注: Elements that are not hidden must not link to elements which are.

Boolean 类型的值,如果想要隐藏元素,则设置为 true,否则设置为 false

示例

在这个例子中,当用户点击了 welcome 面板中的按钮后,welcome 面板就会被隐藏掉,并在原位置显示出 follow-up 面板,follow-up 面板包含了致谢信息。

JavaScript

js
document.getElementById("okButton").addEventListener(
  "click",
  function () {
    document.getElementById("welcome").hidden = true;
    document.getElementById("awesome").hidden = false;
  },
  false,
);

这段代码用来为 welcome 面板中的按钮绑定一个事件监听器,这个事件监听器会隐藏 welcome 面板并在其原位置显示出 follow-up 面板。

HTML

welcome 面板和 follow-up 面板的 HTML 代码。

The welcome panel

html
<div id="welcome" class="panel">
  <h1>Welcome to Foobar.com!</h1>
  <p>By clicking "OK" you agree to be awesome every day!</p>
  <button class="button" id="okButton">OK</button>
</div>

这段 HTML 代码用于创建一个面板(是一个 <div> 的块),这个面板会对进入到该站点的用户表示欢迎,并提示他们只要点击了按钮就代表他们同意面板的内容。

The follow-up panel

一旦用户点击了 welcome 面板中的按钮,JavaScript 代码就会通过修改 hidden 属性来切换 welcome 面板和 follow-up 面板。

html
<div id="awesome" class="panel" hidden>
  <h1>Thanks!</h1>
  <p>
    Thank you <strong>so</strong> much for agreeing to be awesome today! Now get
    out there and do awesome things awesomely to make the world more awesome!
  </p>
</div>

CSS

上述内容使用了下述的 CSS 样式。

css
.panel {
  font:
    16px "Open Sans",
    Helvetica,
    Arial,
    sans-serif;
  border: 1px solid #22d;
  padding: 12px;
  width: 500px;
  text-align: center;
}

.button {
  font:
    22px "Open Sans",
    Helvetica,
    Arial,
    sans-serif;
  padding: 5px 36px;
}

h1 {
  margin-top: 0;
  font-size: 175%;
}

结果

规范

Specification
HTML Standard
# dom-hidden

浏览器兼容性

BCD tables only load in the browser

参见