css偏方:你有幾種方法讓DOM消失?

為啥會有這么個問題?

其實這是我在某次面試前端實習生時候遇到的一個問題,面試官說你有多少種讓DOM隱藏的方法,能說多少說多少,當時腦抽,因為是“能說多少說多少”就覺得那肯定有好多,總結一下當時想出來的“偏方”。

回答:

  1. display: none;
  2. visibility: hidden;

兩者不同:如果設置 display:none,將隱藏整個元素,如果設置 visibility:hidden,元素的內(nèi)容將不可見,但元素仍保持原來的位置和大小。

思來想去既然是隱藏,我是不是還可以說 opacity:0;,問了一下這個答案行不行,他說行,還有嗎?

當然有:

設置position為position:absolute或fixed,可以通過z-index遮掩。

設置父元素為 overflow:hidden,將想要隱藏的元素移出父元素范圍。

通過css的clip屬性,將DOM裁剪。

通過css的transform屬性

a. transform: skew(90deg) 拉伸90度,當然不一定是90
b. transform: scale(0) 縮放到0
c. transform: rotateX(90deg) 當然角度不一定是90,也不一定是沿x軸

=。=面試完之后我就去群里邊問了一下,大部分人說的答案都是display: none;visibility: hidden;斗膽猜測一下這兩個應該是面試官想要的答案。

偏方的使用

雖然答案可能就這兩個,但是我還是有用到過我的“偏方”去做隱藏元素,

我遇到的情況是,我需要為DOM元素做一個fadeout+fadein的動畫,元素帶有click事件,fadeout之后只是opacity為0,然后就有了 元素隱藏了之后點擊事件還存在 這個bug。

當然解決方案有很多,可以通過js,也可以通過css,css可以通過延時+transform來做,也算是我的偏方吧,可能解決方案并不完美,望留言指教。

當然這只是一些自己瞎琢磨出來的方法,希望有和我一樣愛鬧騰的同學補充一下下,也希望大神見到后不吝指教,感激不盡。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容