test

# Learn CSS Layout 翻譯

## Box positioning in CSS

CSS布局的核心在于將一組HTML元素映射到一組矩形框远荠,并通過x,y,z定位三热。

這些盒子的定位取決于應(yīng)用到盒子上的定位方案。本章將會討論CSS2.1引入的三種定位方案:文檔流(normal flow),浮動(floats)和絕對定位(absojute positioning)。

概念上CSS布局的最高抽象就是定位方案睛低。一旦選定了定位方案诀浪,其可以被特定的定位模式修改,如`diaplay:table`或者`display:inline-table`味廊。即使CSS3的擴(kuò)展蒸甜,引入了其他的定位模式如flexbox和grid,其仍然存在于重要的定位方案里毡们。如(`display:flex`和`display:inline-flex`)迅皇。

### 定位方案

CSS2.1定義了三種定位方案

- normal flow:包含三種formating contexts:block,inline和relative formatting context

- floats:其和normal flow以獨特的方式交互衙熔。

- abaolute positioning:處理absolute和fixed元素登颓。

這些定位方案對于元素的x,y坐標(biāo)有重要影響红氯。規(guī)范描述了了其交互影響框咙。簡而言之所有元素默認(rèn)為normal flow,除非特別的設(shè)置了float屬性和position痢甘,其將從文檔流移除喇嘱。

| Attribute | Default value? | Purpose? ? |

| --------- | --------------- | ---------- |

| display? | block or inline | 決定布局算法? ? |

| position? | static? ? ? ? ? | 控制元素定位? ? |

| float? ? | none? ? ? ? ? ? | 允許其他元素環(huán)繞周圍 |

浮動和絕對定位元素都通過與文檔流的交互得到更好理解,所以先講文檔流塞栅。

如果仔細(xì)想一下者铜,實際上布局有兩方面

- 盒子的大小和對齊方式,其主要由display放椰,width作烟,height,magin控制

- 元素在父元素里相對其他元素如何擺放

元素在父元素中的相對位置由formatting context控制砾医,其由特定父元素為所有的子元素建立拿撩,這意味著在文檔流中要么處于block formatting context要么處于inline formatting· context。

父元素為根據(jù)子元素是inline-level還是block-level為子元素建立了fc如蚜。這里的inline-level 和block-level用來強(qiáng)調(diào)即使block的display屬性不為inline和block压恒,其仍然映射到這兩種fc里影暴。例如`display:table`元素被認(rèn)為是block-level而`display:inline-table`被認(rèn)為是inline-level。

一個block-level元素定義如下

> block-level是那些以block形式排版的元素(如段落)探赫,含有下列display屬性的為block-level:‘block','list-item','table'型宙。

>

> block-level 是那些參與bfc的盒子。每個block-level元素都生成一個主要的block-level盒子期吓,也是該盒子參與定位方案早歇。一些block-level元素還可能產(chǎn)生額外的盒子(比如list-item)這些額外的盒子相對于主要盒子放置。

幾乎所有的block-level盒子也是block-container盒子讨勤。一個block container是其他盒子的父元素箭跳,并且有獨特的fc(注:這里并沒有強(qiáng)調(diào)其形成bfc,實際上還可能產(chǎn)生ifc,只有滿足特定條件下潭千,才能產(chǎn)生bfc谱姓,其他條件則是產(chǎn)生ifc)。

> 除了table boxes[…]和替換元素刨晴,一個block-level盒子也是一個container box屉来。一個block container box要么僅包含block-level盒子,要么僅包含inline-level盒子狈癞。

一個inline-level元素定義如下:

> inline-level元素是那些不產(chǎn)生新盒子的元素茄靠。這些內(nèi)容散布于各行(如em,inline images)含有以下display屬性的元素為inline-level:'inline','inline-table','inline-block'蝶桶。inline-level元素生成inline-level盒子慨绳,其參與ifc。

>

> 一個inline box即是inline-level并且其內(nèi)容參與其包含的ifc真竖。一個帶有display為inline的非替換元素生成inline box脐雪。不是inline box的inline-level 盒子(比如inline-level 替換元素,inline-block元素恢共,inline-table元素)被稱為atomic inline-level 盒子战秋,因為其作為一個透明的盒子參與自身的inc。

這里不講替換元素和非替換元素讨韭。你可以把這兩種fc對應(yīng)到垂直排列和水平排列脂信。

上述fc有趣的地方在于每個盒子的fc必須是ifc或者bfc。但是假如我們的孩子元素是block-level和inline-level的混合怎么辦透硝。答案就是inline-level元素會被提升為block-level元素吉嚣,這就叫匿名盒子生成

### Anonymous box generation

匿名盒子生成用于當(dāng)一個父元素既包含inline-level也包含block-level或者既包含inline-level也包含text。

> 如果一個block container box含有一個block-level蹬铺,那么我們迫使他僅包含block-level

### Normal flow positioning

normal flow中,盒子參與一個特定父元素的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秉撇,一起剝皮案震驚了整個濱河市甜攀,隨后出現(xiàn)的幾起案子秋泄,更是在濱河造成了極大的恐慌,老刑警劉巖规阀,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恒序,死亡現(xiàn)場離奇詭異,居然都是意外死亡谁撼,警方通過查閱死者的電腦和手機(jī)歧胁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厉碟,“玉大人喊巍,你說我怎么就攤上這事」抗模” “怎么了崭参?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長款咖。 經(jīng)常有香客問我何暮,道長,這世上最難降的妖魔是什么铐殃? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任海洼,我火速辦了婚禮,結(jié)果婚禮上富腊,老公的妹妹穿的比我還像新娘坏逢。我一直安慰自己,他們只是感情好蟹肘,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布词疼。 她就那樣靜靜地躺著,像睡著了一般帘腹。 火紅的嫁衣襯著肌膚如雪贰盗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天阳欲,我揣著相機(jī)與錄音舵盈,去河邊找鬼。 笑死球化,一個胖子當(dāng)著我的面吹牛秽晚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筒愚,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼赴蝇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巢掺?” 一聲冷哼從身側(cè)響起句伶,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤劲蜻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后考余,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體先嬉,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年楚堤,在試婚紗的時候發(fā)現(xiàn)自己被綠了疫蔓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡身冬,死狀恐怖衅胀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吏恭,我是刑警寧澤拗小,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站樱哼,受9級特大地震影響哀九,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搅幅,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一阅束、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茄唐,春花似錦息裸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚁廓,卻和暖如春访圃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背相嵌。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工腿时, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饭宾。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓批糟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親看铆。 傳聞我的和親對象是個殘疾皇子徽鼎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評論 1 92
  • 先前在學(xué)習(xí)CSS float時,有同學(xué)提到了BFC這個詞纬傲,作為求知好問的好學(xué)生满败,哪里不懂查哪里,那么今天就來研究一...
    這名字真不對閱讀 6,548評論 3 19
  • Visual formatting model 參考 Visual formatting model CSS b...
    吳立寧閱讀 1,222評論 0 2
  • 有個異國戀的姑娘最近難過得要死宵荒,因為男朋友突然神經(jīng)一樣提了分手就不接電話了汁雷,她當(dāng)時在一家公司實習(xí),正是她轉(zhuǎn)正的重要...
    弗朗明哥的熱情閱讀 619評論 3 13
  • 有沒有一本書是你拿在手里报咳,放都不舍得放侠讯?連上廁所都要拿著?連睡覺這么重要的一件事情都要靠后站暑刃?人生中厢漩,我第一次拿著...
    懷瑾姑娘閱讀 395評論 0 2