1.opacity
opacity?屬性的意思是設(shè)置一個元素的透明度渊胸,它不是為改變元素的邊界框而設(shè)計的柑晒,opacity?設(shè)為?0?只能從視覺上隱藏元素,而元素本身依然占據(jù)它自己的位置并對網(wǎng)頁的布局起作用,但是元素和它所有的內(nèi)容會被讀屏軟件閱讀,就是元素的行為就和它們不透明時一致。
2.visibility
將它的值設(shè)為?hidden?將隱藏我們的元素棵癣,如同?opacity?屬性辕翰,被隱藏的元素依然會對我們的網(wǎng)頁布局起作用,與?opacity?唯一不同的是它不會響應(yīng)任何用戶交互狈谊,此外喜命,元素在讀屏軟件中也會被隱藏。
3.display
display?屬性依照詞義真正隱藏元素河劝。將?display?屬性設(shè)為?none?確保元素不可見并且連盒模型也不生成壁榕。使用這個屬性,被隱藏的元素不占據(jù)任何空間赎瞎。不僅如此牌里,一旦?display?設(shè)為?none?任何對該元素直接打用戶交互操作都不可能生效。此外务甥,讀屏軟件也不會讀到元素的內(nèi)容牡辽。這種方式產(chǎn)生的效果就像元素完全不存在。
任何這個元素的子孫元素也會被同時隱藏敞临。為這個屬性添加過渡動畫是無效的态辛,它的任何不同狀態(tài)值之間的切換總是會立即生效。
visibility:hidden?和?display:none?的另一個不同之處:
將任何子孫元素?visibility?顯式設(shè)置成?visible?可以讓它變得可見挺尿,但是?display?不吃這一套奏黑,不管自身的?display?值是什么,只要祖先元素的?display?是?none编矾,它們就都不可見熟史。
4.position
opacity?和?visibility?影響布局,?display?不影響布局但又無法直接交互窄俏,在這種情況下以故,你只能考慮將元素移出可視區(qū)域。這個辦法既不會影響布局裆操,有能讓元素保持可以操作怒详。
{position: absolute;
top: -9999px;
?left: -9999px;}
這種方法的主要原理是通過將元素的?top?和?left?設(shè)置成足夠大的負數(shù),使它在屏幕上不可見踪区。采用這個技術(shù)的一個好處(或者潛在的缺點)是用它隱藏的元素的內(nèi)容可以被讀屏軟件讀取昆烁。