overflow
overflow定義內容溢出時的如何處理,默認值visible
表示內容會出現在元素框外。屬性值hidden
表示溢出內容會被裁剪。scroll
表示溢出時瀏覽器出現滾動條以便查看溢出內容,不溢出時也會出現滾動條。auto
表示當內容溢出時出現滾動條,當內容不溢出時不出現滾動條。inherit
繼承。
可通過overflow-x
和overflow-y
單獨設置水平和垂直方向的溢出處理,當兩者屬性值相同時相當於overflow屬性。
失效情況:
參考例1
當子元素絕對定位后,父元素使用overflow: hidden
會出現失效情況,這是因為子元素脫離了正常文檔流不受父元素控制,解決辦法是給父元素設置position值為非static
當子元素使用fixed定位也會造成失效情況,固定定位是相對於視窗的,所以無法被其父元素裁剪
visibility
visibility定義元素的可見狀態,默認值visible元素可見。屬性值hidden
元素隱藏。屬性值collapse
為表格的col和colgrounp元素定制,表示隱藏表格中的一行或一列,如果該值用到其他元素上,表現效果和hidden相同。inherit
繼承父元素。
當元素隱藏后雖然占據物理位置,但是是不受js控制的,比如如果綁定了click事件,點擊隱藏區域事件是無效的,可以利用這點結合opacity元素制作過渡效果。參考例2.
對比visibility: hidden
和display: none
的不同:
-
visibility: hidden
只是隱藏元素的可見性,不脫離文檔流並保留元素之前所占據的物理位置。后者脫離文檔流,不保留原來的物理位置,如果要重新顯示元素需要頁面重繪。 -
父元素設置
visibility: hidden
,子元素設置visibility: visible
,子元素可見。父元素設置display: none
,子元素設置display: block
,子元素不可見。