定位體系(定位機(jī)制)

原文

博客原文

大綱

1址否、定位體系的意義
2榕莺、定位體系的分類(lèi)
3、常規(guī)流:( Normal flow )
4篮绰、浮動(dòng)(Floats)
5、絕對(duì)定位(Absolute positioning)
6季惯、選擇定位方案

1吠各、定位體系的意義

CSS2.1中臀突,一個(gè)框(box,就是元素形成的方塊等)可以根據(jù)三種定位體系布局走孽。CSS2.1中的定位體系幫助作者使他們的文檔更容易理解惧辈,并不需要使用標(biāo)記的手段(如,不可見(jiàn)的圖片)達(dá)到布局的效果磕瓷。
格式化上下文決定了可視化格式模型中框的形式,定位體系布局決定了這些框在頁(yè)面中如何布局念逞。

2困食、定位體系的分類(lèi)

元素在布局時(shí),根據(jù)3種定位體系定位翎承。分別是硕盹,常規(guī)流、浮動(dòng)和絕對(duì)定位叨咖。

3瘩例、常規(guī)流:( Normal flow )

常規(guī)流,是對(duì) normal flow的直譯甸各。
流者垛贤,動(dòng)也。偏旁是三點(diǎn)水趣倾,說(shuō)明聘惦,跟水有關(guān)系,水的流動(dòng)是連續(xù)不間斷的儒恋,也是有先后順序的善绎。在這里,我們把它當(dāng)作可以流動(dòng)的(位置可變)诫尽,有先后順序(元素順序加載)的體系禀酱。在文檔加載的時(shí)候,好像流水似的牧嫉,一點(diǎn)點(diǎn)的漫過(guò)整個(gè)畫(huà)布剂跟。還有一種說(shuō)法是,瀏覽器在解析HTML CSS JS 的時(shí)候的一個(gè)流式的過(guò)程驹止,從html起始標(biāo)簽開(kāi)始 到html結(jié)束標(biāo)簽截止浩聋。

之所以是常規(guī),是因?yàn)殡担@是相對(duì)于后面的浮動(dòng)和定位的一個(gè)概念衣洁,浮動(dòng)和定位元素都脫離了當(dāng)前的常規(guī)流。
在 CSS2.1中抖仅,常規(guī)流包括塊框(block boxes)的塊格式化(blok formatting 后續(xù)會(huì)講到)坊夫,行內(nèi)框(inline boxes)的行內(nèi)格式化(inline formatting 后續(xù)會(huì)講到)砖第,塊框或行內(nèi)框的相對(duì)定位,以及插入框的定位环凿。

在 CSS 中梧兼,元素定義的環(huán)境有兩種,一種是塊格式化上下文( Block formatting context )智听,另一種是行內(nèi)格式化上下文( Inline formatting context )羽杰。 這兩種上下文定義了在 CSS 中元素所處的環(huán)境,格式化則表明了在這個(gè)環(huán)境中到推,元素處于此環(huán)境中應(yīng)當(dāng)被初始化考赛,即在常規(guī)流中的框,都屬于一個(gè)格式化的上下文中等莉测。

4颜骤、浮動(dòng)(Floats)

浮動(dòng),顧名思義捣卤,相對(duì)于常規(guī)流來(lái)講忍抽,它漂浮在常規(guī)流的上方。因?yàn)樗辉偬幱谖臋n流中董朝,所以它不占據(jù)空間鸠项。
在浮動(dòng)模型中,一個(gè)框(box)首先根據(jù)常規(guī)流布局益涧,再將它從流中取出并盡可能地向左或向右偏移锈锤。內(nèi)容可以沿浮動(dòng)區(qū)的側(cè)面排列。因?yàn)樗紫纫鶕?jù)常規(guī)布局后才偏移闲询,所以效率較常規(guī)流低久免。
用 ‘float’ 特性聲明浮動(dòng),特性值可以是:”none”扭弧、”left”阎姥、”right”。

5鸽捻、絕對(duì)定位(Absolute positioning)

在絕對(duì)定位模型中呼巴,一個(gè)框(box)整個(gè)地從常規(guī)流向中脫離(它對(duì)后續(xù)的兄弟元素沒(méi)有影響),并根據(jù)它的包含塊來(lái)分配其位置御蒲。

6衣赶、選擇定位方案

‘float’和’position’特性決定了使用哪種CSS2.1定位算法來(lái)計(jì)算框的位置。

不同的position選擇不同的定位算法厚满。

6.1府瞄、static

該框(box)是一個(gè)常規(guī)框,布局根據(jù)常規(guī)流碘箍。'left' 遵馆、’right’鲸郊、’bottom’和 'top'屬性不適用。
如果 ‘position’沒(méi)有設(shè)置货邓,默認(rèn)值也是’static’秆撮。這時(shí),設(shè)置'left' 换况、’right’职辨、’bottom’和 'top’,無(wú)效戈二。

6.2拨匆、relative

框的位置根據(jù)常規(guī)流計(jì)算(被稱(chēng)為常規(guī)流中的位置)。然后框相對(duì)于它的常規(guī)位置而偏移挽拂。如果框 B 是相對(duì)定位的,其后框的定位計(jì)算并不考慮 B 的偏移骨饿。 table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell, 和 table-caption 元素的 ‘position:relative’ 效果沒(méi)有被定義亏栈。
相對(duì)定位實(shí)際上被看作普通流定位模型的一部分,因?yàn)樵氐奈恢孟鄬?duì)于它在普通流中的位置宏赘。
在使用相對(duì)定位時(shí)绒北,無(wú)論是否進(jìn)行移動(dòng),元素仍然占據(jù)原來(lái)的空間察署。因此闷游,移動(dòng)元素會(huì)導(dǎo)致它覆蓋其它框。

<div style="position:static; width:100px;">
    <div id="A" style="background-color:green;">A</div>
    <div id="B" style=" position:relative; top:10px; left:10px; background-color:red;">B</div>
    <div id="C" style="background-color:blue;">C</div>
</div>
relative
6.3贴汪、absolute

元素框從文檔流完全刪除脐往,并相對(duì)于其包含塊定位。包含塊可能是文檔中的另一個(gè)元素或者是初始包含塊扳埂。元素原先在正常文檔流中所占的空間會(huì)關(guān)閉业簿,就好像元素原來(lái)不存在一樣。

框的位置(可能還有它的尺寸)是由’left’阳懂,’right’梅尤,’top’和’bottom’特性決定。這些特性指定了框相對(duì)于它包含塊的偏移量岩调。 絕對(duì)定位(”position: absolute”)元素的包含塊由離它最近的 ‘position’ 屬性為 ‘a(chǎn)bsolute’巷燥、’relative’ 或者 ‘fixed’ 的祖先元素創(chuàng)建。絕對(duì)定位的元素的位置相對(duì)于最近的已定位祖先元素号枕,如果元素沒(méi)有已定位的祖先元素缰揪,那么它的位置相對(duì)于最初的包含塊。根據(jù)用戶的代理不同堕澄,最初的包含快可能是畫(huà)布或HTML元素邀跃。

絕對(duì)定位的框從常規(guī)流向中脫離霉咨。這意味著它們對(duì)其后的兄弟元素的定位沒(méi)有影響。另外拍屑,盡管絕對(duì)定位框有外邊距(margin)途戒, 它們不會(huì)和其它任何外邊距發(fā)生折疊(Collapsing margins)。
因?yàn)榻^對(duì)定位的框與文檔流無(wú)關(guān)僵驰,所以它們可以覆蓋頁(yè)面上的其它元素喷斋。可以通過(guò)設(shè)置 z-index 屬性來(lái)控制這些框的堆放次序蒜茴。

<div style="position:absolute; width:300px; border:2px solid yellow;">
    <div id="A" style="background-color:green; height:50px;">A</div>
    <div id="B" style="position:absolute; top:70px; left:50px; height:50px; background-color:red;">B</div>
    <div id="C" style="background-color:blue; height:50px;">C</div>
</div>
absolute
6.4星爪、fixed

框位置的計(jì)算根據(jù)'absolute'模型,不過(guò)框要額外地根據(jù)一些參考而得到固定粉私。跟絕對(duì)定位一樣顽腾,fixed定位元素的margin不會(huì)和任何其他 margin發(fā)生margin折疊。應(yīng)用于手持終端诺核、投影設(shè)備抄肖、屏幕、TTY窖杀、電視媒體類(lèi)型時(shí)漓摩,框相對(duì)于 viewport 固定,滾動(dòng)時(shí)不移動(dòng)入客。應(yīng)用于打印媒介類(lèi)型時(shí)管毙,框被渲染于每一頁(yè),并相對(duì)于頁(yè)框固定桌硫,就好象是通過(guò)viewport查看該頁(yè)一樣(例如夭咬,打印預(yù)覽)。對(duì)于其他的媒介類(lèi)型鞍泉,表現(xiàn)沒(méi)有被定義皱埠。

參考網(wǎng)址

http://www.html5jscss.com/box-context.html
http://bbs.csdn.net/topics/340223607
http://blog.csdn.net/syf19720428/article/details/51993072

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咖驮,隨后出現(xiàn)的幾起案子边器,更是在濱河造成了極大的恐慌,老刑警劉巖托修,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忘巧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡睦刃,警方通過(guò)查閱死者的電腦和手機(jī)砚嘴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人际长,你說(shuō)我怎么就攤上這事耸采。” “怎么了工育?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵虾宇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我如绸,道長(zhǎng)嘱朽,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任怔接,我火速辦了婚禮搪泳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扼脐。我一直安慰自己岸军,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布瓦侮。 她就那樣靜靜地躺著凛膏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脏榆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天台谍,我揣著相機(jī)與錄音须喂,去河邊找鬼。 笑死趁蕊,一個(gè)胖子當(dāng)著我的面吹牛坞生,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掷伙,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼是己,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了任柜?” 一聲冷哼從身側(cè)響起卒废,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宙地,沒(méi)想到半個(gè)月后摔认,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宅粥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年参袱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抹蚀,死狀恐怖剿牺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情环壤,我是刑警寧澤晒来,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站镐捧,受9級(jí)特大地震影響潜索,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜懂酱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一竹习、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧列牺,春花似錦整陌、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至九默,卻和暖如春震放,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驼修。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工殿遂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乙各。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓墨礁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耳峦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恩静,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容