CSS定位與浮動(dòng)

CSS定位機(jī)制

CSS 有三種定位機(jī)制 普通流(文檔流)、浮動(dòng)和絕對(duì)定位。浮動(dòng)和絕對(duì)定位可以讓一個(gè)元素脫離文檔流。

文檔流

顧名思義,普通流中的元素的位置由在HTML中的位置決定,根據(jù)上下級(jí)和前后的順序,一個(gè)一個(gè)的排列在界面上;當(dāng)然根據(jù)元素的類型不一樣,排列的方式會(huì)不一樣,但先后順序,顯示層次關(guān)系不會(huì)改變;
一般在HTML元素分為兩種:塊級(jí)元素和行內(nèi)元素。像div,p這些的元素屬于塊級(jí)元素;而span,strong等屬于行內(nèi)元素。塊級(jí)元素是從上到下一行一行的排列,默認(rèn)一個(gè)塊級(jí)元素會(huì)占用一行,而跟在后面的元素會(huì)令起一行排列;行內(nèi)元素是在一行中水平布置,從前到后的排列。引用來源

通過POSITION屬性,可以選擇4種不同類型的定位。
  • 1.STATIC
    默認(rèn)值。沒有定位,出現(xiàn)在普通流中(忽略top,bottom,left,right或者Z-INDEX。)
  • 2.FIXED
    生成絕對(duì)定位元素,相對(duì)于瀏覽器窗口(參考點(diǎn)),脫離文檔流,元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進(jìn)行設(shè)定。
    對(duì)于定位元素(非static), Z-INDEX用來控制層疊元素的顯示優(yōu)先級(jí),值越大優(yōu)先級(jí)越高。如果兩個(gè)元素都定位在相同的位置并且沒有使用Z-index,那么后面定義的CSS屬性比前面定義的CSS屬性的層級(jí)高。
  • 3.RELATIVE
    生成相對(duì)定位的元素,相對(duì)于其正常位置(參考點(diǎn)是自身)進(jìn)行定位。偏移之后的該元素的原來位置被保留。沒有脫離文檔流。
  • 4.ABSOLUTE
    生成絕對(duì)定位的元素,相對(duì)于 static 定位以外的第一個(gè)父元素進(jìn)行定位(參考點(diǎn))。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進(jìn)行規(guī)定。
position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別

position:relative 是CSS的一種定位機(jī)制,定位之后該元素的原位置被保留,后面的元素不會(huì)跟進(jìn)。
負(fù)margin 是CSS盒子模型中的一個(gè)屬性,使用負(fù)margin之后,該元素原有的空間會(huì)被后面的元素填充。

如何讓一個(gè)固定寬高的元素在頁(yè)面上垂直水平居中?

詳情見CSS各種居中

浮動(dòng)

浮動(dòng)可以向左或向右移動(dòng),直到它的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹梗ㄗ⒁猓焊?dòng)的元素不是一直跑,跑到頁(yè)面的最左邊或者最右邊)。 由于浮動(dòng)框不在文檔的普通流中,所以文檔的普通流中的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。

浮動(dòng)元素有什么特征?對(duì)其他浮動(dòng)元素、普通元素、文字分別有什么影響?

浮動(dòng)元素的特征:脫離文檔流。想要浮動(dòng)(或絕對(duì)定位)元素要設(shè)置寬度,否則浮動(dòng)(或絕對(duì)定位)的寬度會(huì)收縮,收縮成和內(nèi)容一樣的寬度。

影響 浮動(dòng)元素 普通元素 文字
浮動(dòng)元素 阻止元素繼續(xù)浮動(dòng) 占用浮動(dòng)元素的位置 環(huán)繞
清除浮動(dòng)指什么? 如何清除浮動(dòng)?

因?yàn)楦?dòng)的元素會(huì)對(duì)其后面的元素產(chǎn)生如下影響,所以我們要清除浮動(dòng)。

  • 1.父元素的高度無法被撐開,影響與父元素同級(jí)的元素
  • 2.與浮動(dòng)元素同級(jí)的非浮動(dòng)元素會(huì)跟隨其后
  • 3.若非第一個(gè)元素浮動(dòng),則該元素之前的元素也需要浮動(dòng),否則會(huì)影響頁(yè)面顯示的結(jié)構(gòu)
    使用CSS中的clear:both;屬性來清除元素的浮動(dòng)可解決2、3問題。

對(duì)于1的情況

.clearfix:before, .clearfix:after{ content: ""; display: table;}

或者BFC

 overflow:hidden; _zoom:1; /* for ie 6*/

以上相關(guān)內(nèi)容來源于饑人谷課件

最后編輯于
?著作權(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)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,150評(píng)論 1 92
  • 文檔流的概念指什么?有哪種方式可以讓元素脫離文檔流? 文檔流:將窗體自上而下分成一行一行,并在每行中按從左至右的挨...
    王難道閱讀 478評(píng)論 0 0
  • static 默認(rèn)值,指定元素使用正常的布局行為,即元素在文檔流中的當(dāng)前布局位置。此時(shí)top,right,bott...
    親愛的孟良閱讀 484評(píng)論 0 1
  • CSS 定位 (Positioning) CSS 有三種基本的定位機(jī)制:普通流、浮動(dòng)和絕對(duì)定位。 position...
    小鋒子_Gruad閱讀 147評(píng)論 0 1
  • 過去回不去,未來還沒到,珍惜眼前。 世上有一些東西,是你自己支配不了的,比如運(yùn)氣和機(jī)會(huì),輿論和毀譽(yù),那就不去管它們...
    lq野象小姐閱讀 771評(píng)論 0 0

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