display:none和
visibility:hidden這兩個屬性對應的值都是隱藏對像,但是它們隱藏對像有點區別。
display:none:1、如果在樣式文件或頁面文件代碼中直接用display:none對元素進行了隱藏,載入頁面後,在沒有通過js設置樣式使元素顯示的前提下,使用js代碼會無法正確獲得該元素的一些屬性,比如offSetTop,offSetLeft等,返回的值會為0,通過js設置style.display來使元素顯示後才能正確獲得這些值。
2、使用display:none隱藏的元素不會被百度等搜索網站檢索,會影響到網站的SEO,某些情況下可以使用left:-100000px來達到同樣效果。
3、如果是通過樣式文件或<style>css</style>方式來設置元素的display:none樣式,用js設置style.display=""並不能使元素顯示,可以使用block或inline等值來代替。通過
style="display:none"直接在元素上進行的設置不會有這個問題
4、有些情況下可以使用style.visibility來代替style.display,但是要注意的是style.visibility隱藏元素時會保留元素在頁面上所占的空間,而style.display隱藏元素且讓出所占頁面空間。
visibility:hidden:如果想讓某一段代碼在前台不顯示,最簡單的方法是用css的
display:none,這樣,下邊的內容就自動填補這個空隙。但是在一些特殊的情況下,我們只需要隱藏這個元素,但它的位置不能被占用了,那麼,visibility:hidden就可以實現這個要求。
也就是說,用,用
visibility:hidden;可以很方便實現隱藏元素在前台的顯示,但它的位置不會被後邊的元素搶占。