溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CSS如何實(shí)現(xiàn)子元素相對(duì)于父元素固定定位

發(fā)布時(shí)間:2021-03-17 12:42:36 來(lái)源:億速云 閱讀:894 作者:清風(fēng) 欄目:web開(kāi)發(fā)

這篇“CSS如何實(shí)現(xiàn)子元素相對(duì)于父元素固定定位”文章,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要參考一下,對(duì)于“CSS如何實(shí)現(xiàn)子元素相對(duì)于父元素固定定位”,小編整理了以下知識(shí)點(diǎn),請(qǐng)大家跟著小編的步伐一步一步的慢慢理解,接下來(lái)就讓我們進(jìn)入主題吧。

基本概念

絕對(duì)定位(absolute):設(shè)置為絕對(duì)定位的元素框從文檔流完全刪除,并相對(duì)于其包含塊定位,包含塊可能是文檔中的另一個(gè)元素或者是初始包含塊。元素原先在正常文檔流中所占的空間會(huì)關(guān)閉,就好像該元素原來(lái)不存在一樣。元素定位后生成一個(gè)塊級(jí)框,而不論原來(lái)它在正常流中生成何種類型的框。

https://www.w3school.com.cn/css/css_positioning_absolute.asp

相對(duì)定位(relative):設(shè)置為相對(duì)定位的元素框會(huì)偏移某個(gè)距離。元素仍然保持其未定位前的形狀,它原本所占的空間仍保留。

問(wèn)題分析

絕對(duì)定位的元素的位置相對(duì)于最近的已定位祖先元素,如果元素沒(méi)有已定位的祖先元素,那么它的位置相對(duì)于最初的包含塊。

對(duì)于定位的主要問(wèn)題是要記住每種定位的意義。所以,現(xiàn)在讓我們復(fù)習(xí)一下學(xué)過(guò)的知識(shí)吧:相對(duì)定位是“相對(duì)于”元素在文檔中的初始位置,而絕對(duì)定位是“相對(duì)于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相對(duì)于”最初的包含塊。

注釋:根據(jù)用戶代理的不同,最初的包含塊可能是畫布或 HTML 元素。

提示:因?yàn)榻^對(duì)定位的框與文檔流無(wú)關(guān),所以它們可以覆蓋頁(yè)面上的其它元素。可以通過(guò)設(shè)置 z-index 屬性來(lái)控制這些框的堆放次序。

解決方案

<div class="assistor">
  <div class="parent">
    <div class="child"></div>
    <div class="placeholder"></div>
  </div>
</div>
<style>
.assistor {
  position: relative; /*關(guān)鍵點(diǎn)*/
  display: block;
  width: 500px;
  height: 300px;
  margin: 100px auto 0 auto;
  background-color: #ddd;
}
.parent {
  width: 500px;
  height: 300px;
  background-color: #888;
  overflow: auto; /*關(guān)鍵點(diǎn)*/
}
.child {
  position: absolute; /*關(guān)鍵點(diǎn)*/
  width: 120px;
  height: 120px;
  margin: 100px 50px;
  background-color: #333;
}
.placeholder {
  width: 1000px;
  height: 1000px;
}
<style>

child相對(duì)于assistorposition: absolute定位,parent內(nèi)的內(nèi)容自己負(fù)責(zé)展示。

只要assistor和parent一樣大,看起來(lái)就像是子元素child相對(duì)于父元素parent固定定位了。

具體原理:position: absolute;的元素會(huì)相對(duì)于第一個(gè)設(shè)置了position: relative;的祖先元素進(jìn)行定位,將assistor設(shè)置為position: reletive;,滾動(dòng)條是在parent中的,position: fixed;和parent內(nèi)的內(nèi)容滾動(dòng)就都實(shí)現(xiàn)了。

以上是“CSS如何實(shí)現(xiàn)子元素相對(duì)于父元素固定定位”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI