HTML5 的 hidden="hidden" 和CSS的 display:none有什麼區別?


不管什麼情況,你知道一個原則就 OK 了:

HTML 是內容展示帶有語義,CSS 是界面樣式相關。

那麼 hidden 這個屬性,就表示與瀏覽者不相關、不重要,瀏覽器在解析的時候,既然不相關就直接隱藏掉了。如果你有些東西與用戶不相關,比如 提交信息的 input 等,就可以用 hidden。

display none 就是從界面、視覺上的隱藏。如果你需要臨時隱藏一些東西後面會再切換出來,比如 下拉菜單 等,就可以用 display none。因為它不是跟用戶不相關,只是目前還不能展示出來。


效果上沒有什麼不同,但是只要是寫在 CSS 裡面的都只是純展現,可以不遵循任何道理(比如 display,狗都可以偽裝成猴的樣子),而 HTML 則可能帶有語義。

hidden 表示該元素是不相關的、不需要的,這個含義是主要內容,「隱藏」的效果只是附帶。也許看上去跟 display: none 沒有任何區別,但是在我們不知道的地方,比如屏幕閱讀器或其他一切依賴語義的地方,可能就有它的價值體現。

更多信息可參考:hidden - HTML (HyperText Markup Language)


推薦閱讀:

overflow:hidden的問題?
怎樣隱藏滾動條還能滾動頁面(包括滑鼠滾輪)?
如何理解塊級格式化上下文BFC(block formatting context)?
什麼情況下適合用 table+CSS 而不是 DIV+CSS ?
CSS要怎麼寫才規範,提高可讀性?

TAG:前端開發 | CSS | HTML5 |