visibility
試一試
visibility: visible;
visibility: hidden;
visibility: collapse;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">Hide me</div>
<div>Item 2</div>
<div>Item 3</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
padding: 0.75em;
width: 80%;
max-height: 300px;
display: flex;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
margin: 10px;
flex: 1;
}
#example-element {
background-color: rgb(255 0 200 / 0.2);
border: 3px solid rebeccapurple;
}
若要隱藏元素並將其從文件佈局中移除,請將 display 屬性設定為 none,而不是使用 visibility。
語法
css
/* Keyword values */
visibility: visible;
visibility: hidden;
visibility: collapse;
/* Global values */
visibility: inherit;
visibility: initial;
visibility: revert;
visibility: revert-layer;
visibility: unset;
visibility 屬性透過下面列出的關鍵詞值之一指定。
值
無障礙
對元素使用 hidden 的 visibility 值會將其從可訪問性樹中移除。這將導致該元素及其所有後代元素不再被螢幕閱讀技術播報。
插值
動畫時,visibility 值在可見和不可見之間插值。因此,起始或結束值之一必須是 visible,否則無法進行插值。該值作為離散步驟進行插值,其中緩動函式在 0 和 1 之間的值對映到 visible,緩動函式的其他值(僅在過渡開始/結束時或由於 y 值超出 [0, 1] 的 cubic-bezier() 函式而發生)對映到更近的端點。
注意
- 在某些現代瀏覽器中,
visibility: collapse的支援缺失或部分不正確。對於表格行和列以外的元素,它可能無法被正確地視為visibility: hidden。 - 當應用於表格行時,如果表格包含跨越可見行和摺疊行的單元格(
<td>和<th>元素),則單元格可能會以意外的方式渲染。如果跨越單元格在摺疊行中定義,瀏覽器不會渲染表格單元格,如同後續行中的單元格存在並應用了visibility: collapse。當單元格在可見行中定義並跨越摺疊行時,單元格內容不會重排,但單元格本身的呈現方式因瀏覽器而異。大多數瀏覽器會透過隱藏行的塊大小來減小單元格的塊大小。這意味著內容在塊大小方向上可能大於單元格。根據瀏覽器,溢位內容要麼被裁剪,如同設定了overflow: hidden,而在其他瀏覽器中內容會溢位到後續行,如同設定了overflow: visible。在其他瀏覽器中,單元格的渲染方式如同該行未摺疊,而該行中的所有其他單元格都被隱藏,如同visibility: collapse應用於單個單元格而非行本身。 - 如果表格在摺疊的單元格中包含巢狀表格,
visibility: collapse可能會改變表格的佈局,除非在巢狀表格上明確指定visibility: visible。
正式定義
| 初始值 | visible |
|---|---|
| 應用於 | 所有元素 |
| 繼承性 | 是 |
| 計算值 | 同指定值 |
| 動畫型別 | 一個 visibility |
正式語法
visibility =
visible |
hidden |
force-hidden |
collapse
示例
基本示例
HTML
html
<p class="visible">The first paragraph is visible.</p>
<p class="not-visible">The second paragraph is NOT visible.</p>
<p class="visible">
The third paragraph is visible. Notice the second paragraph is still occupying
space.
</p>
CSS
css
.visible {
visibility: visible;
}
.not-visible {
visibility: hidden;
}
表格示例
HTML
html
<table>
<tr>
<td>1.1</td>
<td class="collapse">1.2</td>
<td>1.3</td>
</tr>
<tr class="collapse">
<td>2.1</td>
<td>2.2</td>
<td>2.3</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
<td>3.3</td>
</tr>
</table>
CSS
css
.collapse {
visibility: collapse;
}
table {
border: 1px solid red;
}
td {
border: 1px solid gray;
}
規範
| 規範 |
|---|
| CSS Display Module Level 3 # visibility |
| Scalable Vector Graphics (SVG) 2 # VisibilityControl |
瀏覽器相容性
載入中…
另見
display- SVG
visibility屬性