浮動定位與bfc邊距合并

問題1:浮動元素有什么特征充石?對父容器莫换、其他浮動元素、普通元素、文字分別有什么影響?

特征:

  • 脫離文檔的普通流
  • 不被其他塊級元素所感知拉岁,但可被塊級元素中的文本溃列、圖像等行內(nèi)元素所感知。
  • 直到碰到父元素的包含框或子元素的包含框才停止

影響:

  • 父容器感知不到浮動元素的存在膛薛,父容器的高度會塌陷
  • 其他浮動元素碰到該浮動元素時,會停止浮動
  • 普通元素感知不到浮動元素补鼻,繼續(xù)按文檔流排列哄啄,浮動元素覆蓋普通元素,類似下圖


    浮動元素覆蓋普通元素
  • 文字受到浮動元素的影響风范,移動以留出空間咨跌,圍繞浮動元素排列(行框縮短)

問題2:清除浮動指什么? 如何清除浮動? 兩種以上方法

清除浮動:在非IE瀏覽器(如Firefox)下,當容器的高度為auto硼婿,且容器的內(nèi)容中有浮動(float為left或right)的元素锌半,在這種情況下,容器的高度不能自動伸長以適應(yīng)內(nèi)容的高度寇漫,使得內(nèi)容溢出到容器外面而影響(甚至破壞)布局的現(xiàn)象刊殉。這個現(xiàn)象叫浮動溢出,為了防止這個現(xiàn)象的出現(xiàn)而進行的CSS處理州胳,就叫CSS清除浮動记焊。
方法:

  • 在父元素最后添加一個空的div標簽,對它清理浮動栓撞。
  • 對父元素設(shè)置float:left/rightdisplay:inline-block或者position:absolute/fixedoverflow:hidden

問題3:有幾種定位方式遍膜,分別是如何實現(xiàn)定位的,參考點是什么瓤湘,使用場景是什么瓢颅?

CSS 有三種基本的定位機制:普通流、浮動和絕對定位弛说。

  • 普通流是默認的定位方式挽懦,在普通流中元素框的位置由元素在html中的位置決定,元素position屬性為static或繼承來的static時就會按照普通流定位剃浇,這是我們常見方式巾兆。
  • 浮動,float:left虎囚、float:right兩個常用屬性角塑,參考點為其父元素。
  • position:absolute生成絕對定位元素淘讥,絕對定位元素的位置相對于最近的已定位父元素圃伶,如果元素沒有已定位的父元素,那么它的位置相對于最初的包含塊。絕對定位的元素框從文檔流完全刪除窒朋,因此不占據(jù)空間.
    position定位幾種方式
  • position:static該關(guān)鍵字指定元素使用正常的布局行為搀罢,即元素在文檔流中當前的布局位置。此時 top, right, bottom, left 和 z-index 屬性無效侥猩。
  • position:relative 該關(guān)鍵字下榔至,元素先放置在未添加定位時的位置,再在不改變頁面布局的前提下調(diào)整元素位置欺劳。不脫離文檔流唧取,相對于自身原本位置定位。
    常作用于父元素中划提,給絕對定位的子元素當定位參考
  • position:absolute脫離文檔流枫弟,通過指定元素相對于最近的非 static 定位祖先元素的偏移,來確定元素位置鹏往,偏移是參考其第一個定位父元素淡诗。
  • position:fixed不為元素預(yù)留空間,而是通過指定元素相對于屏幕視口(viewport)的位置來指定元素位置伊履。元素的位置在屏幕滾動時不會改變韩容,偏移是參考瀏覽器窗口
  • position:sticky盒位置根據(jù)正常流計算(這稱為正常流動中的位置)湾碎,然后相對于該元素在流中的 flow root(BFC)和 containing block(最近的塊級祖先元素)定位宙攻。

問題4:z-index 有什么作用? 如何使用

  • z-index 屬性指定了一個元素及其子元素的 z-order。 當元素之間重疊的時候介褥,z-order 決定哪一個元素覆蓋在其余元素的上方顯示座掘。 通常來說 z-index 較大的元素會覆蓋較小的一個。
    對于一個已經(jīng)定位的元素(即position屬性值是非static的元素)柔滔,z-index 屬性指定:
    元素在當前堆疊上下文中的堆疊層級溢陪。
    元素是否創(chuàng)建一個新的本地堆疊上下文。

z-index屬性只對定位元素有效

動手練習

問題5:position:relative和負margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別

position:relative是在自身的文檔流中讓自己顯示上發(fā)生偏移睛廊,文檔流中其他元素不會因為它的偏移而產(chǎn)生位置上的變化形真;負margin是讓元素的外邊框產(chǎn)生空隙從而發(fā)生偏移,此偏移會影響到元素后面的元素的位置超全。

position:relative定位居中

margin定位居中

問題6:BFC 是什么咆霜?如何生成 BFC?BFC 有什么作用嘶朱?舉例說明

1.BFC(Block Format Content):BFC的全稱是Block Format Content——塊級格式化上下文:浮動蛾坯、絕對定位的元素(absolute、fixed定位)疏遏、塊容器(display屬性為inline-block,table-cells,table-captions)脉课、以及帶有overflow屬性(該屬性值不為visible)的display為block的塊級元素會建立新的塊級格式化上下文——元素們處于同一個塊級格式化上下文時救军,會遵守相同的規(guī)則/格式(例如垂直排列的兩個元素的margin會重疊),但是處于不同的塊級格式化上下文時倘零,元素的排列展示遵守的規(guī)則/格式是不同的(處于不同BFC的垂直排列的兩個元素的margin是不會重疊的)
2.對父元素設(shè):

  • float:left/right
  • display:inline-block
  • position:absolute/fixed
  • overflow:hidden
    3.見下面三個例子
    阻止垂直外邊距折疊
    在p的父元素div上設(shè)置bfc唱遭,可以把它的背景顏色給顯示出來。
    父子外邊距合并

    包含浮動
    設(shè)置父元素為bfc呈驶,高度恢復(fù)拷泽。
    父元素高度塌陷

    不會重疊浮動元素
    浮動元素不重疊

問題7:在什么場景下會出現(xiàn)外邊距合并?如何合并袖瞻?如何不讓相鄰元素外邊距合并跌穗?給個父子外邊距合并的范例

  • 處在同一個BFC的兩個且同處于普通流(非float和絕對定位)中的垂直相鄰元素
  • 空元素
  • 父子元素的外邊距合并


    空元素合并

    上圖中,去除border虏辫,p元素間距為100px,空元素的上下margin值合并锈拨。

  • 阻止相鄰元素外邊距合并:使其中一元素生成bfc砌庄,display:inline-block
  • 父子外邊距合并范例,見問題6中的3-1奕枢。

效果范例1
效果范例2
效果范例3
效果范例4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娄昆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缝彬,更是在濱河造成了極大的恐慌萌焰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谷浅,死亡現(xiàn)場離奇詭異扒俯,居然都是意外死亡,警方通過查閱死者的電腦和手機一疯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門撼玄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人墩邀,你說我怎么就攤上這事掌猛。” “怎么了眉睹?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵荔茬,是天一觀的道長。 經(jīng)常有香客問我竹海,道長慕蔚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任站削,我火速辦了婚禮坊萝,結(jié)果婚禮上孵稽,老公的妹妹穿的比我還像新娘。我一直安慰自己十偶,他們只是感情好菩鲜,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惦积,像睡著了一般接校。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狮崩,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天蛛勉,我揣著相機與錄音,去河邊找鬼睦柴。 笑死诽凌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的侣诵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼狱窘,長吁一口氣:“原來是場噩夢啊……” “哼杜顺!你這毒婦竟也來了躬络?” 一聲冷哼從身側(cè)響起穷当,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤膘滨,失蹤者是張志新(化名)和其女友劉穎火邓,沒想到半個月后德撬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铲咨,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年蜓洪,在試婚紗的時候發(fā)現(xiàn)自己被綠了纤勒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡隆檀,死狀恐怖摇天,靈堂內(nèi)的尸體忽然破棺而出粹湃,到底是詐尸還是另有隱情,我是刑警寧澤泉坐,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布为鳄,位于F島的核電站,受9級特大地震影響腕让,放射性物質(zhì)發(fā)生泄漏孤钦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一纯丸、第九天 我趴在偏房一處隱蔽的房頂上張望偏形。 院中可真熱鬧,春花似錦觉鼻、人聲如沸俊扭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽统扳。三九已至,卻和暖如春畅姊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吹由。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工若未, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倾鲫。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓粗合,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乌昔。 傳聞我的和親對象是個殘疾皇子隙疚,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 浮動元素有什么特征?對父容器磕道、其他浮動元素供屉、普通元素、文字分別有什么影響? 浮動模型也是一種可視化格式模型溺蕉,浮動的...
    姚小帥閱讀 250評論 0 0
  • 浮動元素有什么特征伶丐?對父容器、其他浮動元素疯特、普通元素哗魂、文字分別有什么影響? 特征:浮動元素會脫離文檔流,使普通文檔...
    cce117b0a0ce閱讀 182評論 0 0
  • 一漓雅,浮動元素有什么特征录别?對父容器朽色、其他浮動元素、普通元素组题、文字分別有什么影響? 浮動模型是一種可視化格式模型葫男,浮動...
    DeeJay_Y閱讀 874評論 0 4
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 943評論 0 2
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案往踢? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,754評論 1 92