CSS 中 display: none; 和 visibility: hidden; 的區別
在應用程式中,有時您希望隱藏某些元素(即,從 DOM 中移除它們,但將其保留在螢幕上)。您可以透過多種方法實現此目的。使用 visibility 屬性和 hidden 值(visibility:hidden;) 或使用 display 屬性和 none 值 (display:none;) 是兩種常見的方法。
這兩種方法都能使元素隱藏,但它們對元素行為的影響不同。在本文中,我們將瞭解 display:none; 和 visibility:hidden; 之間的區別。
CSS visibility:hidden
此 CSS 屬性將導致元素佔據螢幕空間,即使它從檢視中隱藏。這意味著元素之前和之後的內容將被渲染,但隱藏的元素仍然佔據完全相同的空間。即使它沒有顯示在螢幕上並佔用空間,HTML 元素仍然存在於 DOM 中。
語法
以下是 CSS visibility 屬性的語法:
visibility: visible| hidden | collapse | initial | inherit;
示例
讓我們看下面的示例,我們將使用 CSS visibility:hidden 屬性。
<!DOCTYPE html> <html> <head> <style> .tp { display: flex; gap: 20px; } .x { height: 100px; width: 150px; font-size: 30px; text-align: center; font-family: verdana; color: #DE3163; } .x1 { background-color: #E8DAEF; } .x2 { background-color: #DFFF00; visibility: hidden; } .x3 { background-color: #CCCCFF; } </style> </head> <body style="background-color:#EAFAF1"> <div class="tp"> <div class="x1 x">A</div> <div class="x2 x">B</div> <div class="x3 x">C</div> </div> </body> </html>
當我們執行以上程式碼時,它將生成一個輸出,該輸出包含一個 div 盒子,其中一個應用了 CSS visibility 屬性,並在網頁上顯示。
CSS display:none
但是,display: none 透過從螢幕中隱藏元素來完成類似的任務。在這種情況下,它不會留下任何空間,並且行為會給人一種帶有此屬性的元素不存在的印象。儘管此屬性對其沒有影響,但該元素仍然存在於 DOM 中。元素只是隱藏在 DOM 中。此 CSS 屬性不能用於從 DOM 中移除元素。
語法
以下是 CSS display 屬性的語法:
display: none | inline | block | inline-block;
示例
在下面的示例中,我們將使用 CSS display:none 屬性。
<!DOCTYPE html> <html> <head> <style> .tp { padding: 50px; width: max-content; display: flex; border: 1px solid #DE3163; } .x { height: 50px; width: 130px; } .x1 { background-color: #DFFF00; margin-right: 30px; } .x2 { background-color: #229954; margin-right: 30px; display: none; } .x3 { background-color: #212F3D; } </style> </head> <body style="background-color:#F4ECF7"> <div class="tp"> <div class="x1 x"></div> <div class="x2 x"></div> <div class="x3 x"></div> </div> </body> </html>
執行以上程式碼後,將彈出輸出視窗,顯示一個 div 盒子,其中一個應用了 display 屬性,並在網頁上顯示。
.廣告