亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

父元素不能是position:absolute;或者relative?為什么?

老師,您好!有個問題,就是,既然說ul是無依賴的,但是為什么針對其父元素

, 設置position:absolute;或者position:relative;之后,原來可見的ul就不可見了,事實上,位置還是在的,僅僅是看不見內容。請老師答疑解惑。默認的父元素應該是position: static。在其他的position條件下,需要設置一定的高度才能顯示ul的內容。請老師再解釋一下。

正在回答

2 回答

查閱了很多資料,

這里其實是 ul元素的包含塊(containing block)問題 。

containing block定義

一個元素盒子的位置和大小有時是通過相對于一個特定的長方形來計算的,這個長方形就被稱之為元素的 containing block。

如果元素有屬性 'position:absolute',containing block 由最近的 position 不是 static 的祖先建立。

如果沒有這樣的祖先,則根元素盒子的內容邊界確定為 containing block。

overflow屬性

一個絕對定位的子孫元素,部分內容在盒子外。但超出的部分不是總會被剪裁。子孫元素的內容就不會被子孫元素和其包含塊之間的祖先元素的overflow的設置所剪裁。

現在再看樓主的問題:

  1. 一開始ul的父元素并沒有設置position的值,ul元素的包含塊為根元素,ul父元素上的overflow:hidden對其不生效。

  2. 當ul的父元素上設置了非默認的position值之后,ul元素的包含塊變為ul的父元素,此時overflow:hidden屬性對ul生效

這里有一些overflow屬性失效的詳盡演示,大家可以對照著看一下

http://www.cnblogs.com/xiaohuochai/p/5289653.html#anchor3



0 回復 有任何疑惑可以回復我~

我看糊涂了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

父元素不能是position:absolute;或者relative?為什么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號