我們使用第三方的組件時,第三方組件有時會依據我們引入組件的DOM的位置進行定位,很常見的CSS寫法就是使用position:relative
和position:absolute
進行搭配使用,有時在父容器的外層添加了overflow:hidden
之後,就會出現一些莫名奇妙的bug.下面舉個例子
你可以訪問如下頁面:https://alizwell.github.io/front-end/CSS/absolute&overflowHidden.html
你可以看到因爲overflow:hidden
的影響,我們自己定義的tooltips超出容器的部分將會被完全截斷,而解決的辦法目前來看有兩種,一種是你將父容器的overflow:hidden
屬性給去除掉,另外一種方法是給組件定位依賴的那個position:relative
屬性的容器再套一個容器,同時設置屬性position: absolute
. 其本質是,將position:relative
的容器包裹在position:absolute
的容器中,使其逃離overflow:hidden
的影響。、
這裏有一點需要說一下,那就是當容器設置position:absolute
時,如果不給他設置top,left,right,bottom時,容器的位置是會保留在其在正常文檔流中的位置,但是其將不會影響文檔流中其他正常元素的位置。這個叫做所謂的位置跟隨性,利用這個可以做很多有意思的事情。
還有一點就是如果設置了對立的位置屬性,如left和right,top和bottom.那麼這個時候在結合margin: auto,就可以實現一個很強大的居中定位的方法。
如果想要了解更多關於absolute的知識,請查閱如下鏈接。
1.https://www.zhangxinxu.com/wordpress/2010/01/absolute絕對定位的非絕對定位用法/
2.https://www.zhangxinxu.com/wordpress/2010/12/css-相對絕對定位系列(一)/
3.https://blog.csdn.net/liufeng520/article/details/26058775