CSS定位

CSS定位(Positioning)允許你對(duì)元素進(jìn)行定位。

CSS 定位和浮動(dòng)

CSS 為定位浮動(dòng)提供了一些屬性,利用這些屬性,可以建立列式布局,將布局的一部分與另一部分重疊,還可以完成多年來(lái)通常需要使用多個(gè)表格才能完成的任務(wù)。

一切皆為框

divh1p 元素常常被稱為塊級(jí)元素。這意味著這些元素顯示為一塊內(nèi)容,即“塊框”。
與之相反,span 和 strong 等元素稱為“行內(nèi)元素”,這是因?yàn)樗鼈兊膬?nèi)容顯示在行中,即“行內(nèi)框”。

可以使用 display 屬性改變生成的框的類型:

none,block,inline


定位的基本思想很簡(jiǎn)單,它允許你定義元素框相對(duì)于其正常位置應(yīng)該出現(xiàn)的位置,或者相對(duì)于父元素、另一個(gè)元素甚至瀏覽器窗口本身的位置。

圖片.png

相對(duì)定位:

圖片.png

CSS 定位機(jī)制:

CSS 有三種基本的定位機(jī)制:普通流、浮動(dòng)和絕對(duì)定位。

除非專門指定,否則所有框都在普通流中定位。也就是說(shuō),普通流中的元素的位置由元素在 (X)HTML 中的位置決定。
塊級(jí)框從上到下一個(gè)接一個(gè)地排列,框之間的垂直距離是由框的垂直外邊距計(jì)算出來(lái)。

行內(nèi)框在一行中水平布置??梢允褂盟絻?nèi)邊距、邊框和外邊距調(diào)整它們的間距。但是,垂直內(nèi)邊距、邊框和外邊距不影響行內(nèi)框的高度。由一行形成的水平框稱為行框(Line Box),行框的高度總是足以容納它包含的所有行內(nèi)框。不過(guò),設(shè)置行高可以增加這個(gè)框的高度。


CSS position 屬性

static
元素框正常生成。塊級(jí)元素生成一個(gè)矩形框,作為文檔流的一部分,行內(nèi)元素則會(huì)創(chuàng)建一個(gè)或多個(gè)行框,置于其父元素中。

relative
元素框偏移某個(gè)距離。元素仍保持其未定位前的形狀,它原本所占的空間仍保留。

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

fixed
元素框的表現(xiàn)類似于將 position 設(shè)置為 absolute,不過(guò)其包含塊是視窗本身。


絕對(duì)定位:
絕對(duì)定位使元素的位置與文檔流無(wú)關(guān),因此不占據(jù)空間。這一點(diǎn)與相對(duì)定位不同,相對(duì)定位實(shí)際上被看作普通流定位模型的一部分,因?yàn)樵氐奈恢孟鄬?duì)于它在普通流中的位置。

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

#box_relative {
  position: absolute;
  left: 30px;
  top: 20px;
}
圖片.png

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


CSS 浮動(dòng)

浮動(dòng)的框可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹埂?/p>

由于浮動(dòng)框不在文檔的普通流中,所以文檔的普通流中的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。

當(dāng)把框 1 向右浮動(dòng)時(shí),它脫離文檔流并且向右移動(dòng),直到它的右邊緣碰到包含框的右邊緣:

圖片.png
圖片.png
圖片.png

CSS float 屬性

在 CSS 中,我們通過(guò) float 屬性實(shí)現(xiàn)元素的浮動(dòng)。

clear: left; // 可以讓左邊的浮動(dòng)元素不能存在那里,注意是針對(duì)浮動(dòng)元素。
clear: right;
clear: both;

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

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,095評(píng)論 1 92
  • CSS 定位 CSS有三種基本的定位機(jī)制:普通流,浮動(dòng),絕對(duì)定位(absolute, fixed):普通流是默認(rèn)定...
    _空空閱讀 5,960評(píng)論 0 15
  • 塊級(jí)元素,行內(nèi)元素(內(nèi)聯(lián)元素) div、h1 或 p 元素常常被稱為塊級(jí)元素。這意味著這些元素顯示為一塊內(nèi)容,即“...
    艷曉閱讀 2,670評(píng)論 0 0
  • 1、元素隱藏: display:none 隱藏不占用空間 visibility:hidden 隱藏但是占用空間 v...
    safiriGitHub閱讀 275評(píng)論 0 0
  • 微信標(biāo)簽,人脈整理 大明 主題分享: 大明班長(zhǎng)分享《微信標(biāo)簽,人脈整理》 我們來(lái)討論一下微信的標(biāo)簽,怎樣整理才能...
    時(shí)間的天使閱讀 4,634評(píng)論 0 3

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