浮動定位BFC邊距合并

浮動元素有什么特征悦陋?對父容器迁酸、其他浮動元素缴允、普通元素户魏、文字分別有什么影響?

浮動模型也是一種可視化格式模型拍顷,浮動的框可以左右移動(根據(jù)float屬性值而定)僧叉,直到它的外邊緣碰到包含框或者另一個浮動元素的框的邊緣眶俩。浮動元素不在文檔的普通流中逻锐,文檔的普通流中的元素表現(xiàn)的就像浮動元素不存在一樣.
demo

特征:

  1. 塊級元素浮動將并排顯示恩袱,不再獨占一行
  2. 內(nèi)聯(lián)樣式浮動將支持設置寬高泣棋,不僅支持margin-left(right),而且開始支持margin-top(bottom)
  3. 浮動元素默認內(nèi)容撐開寬度
  4. 浮動元素脫離正常的文檔流
  5. 浮動元素提升半層級

影響

對父容器: 當元素設置為浮動時畔塔,父容器會當做它不存在潭辈,此時容易造成塌陷鸯屿。
其他浮動元素: 如果包含塊兒太窄無法容納水平排列的三個浮動元素,那么其它浮動塊兒向下移動 ,直到有足夠的空間,如果浮動元素的高度不同,那么向下移動的時候可能被 卡住
普通元素: 浮動會讓元素脫離普通流, 如果浮動的元素后面有一個文檔流中元素,那么這個元素的框會表現(xiàn)的像浮動元素不存在,但是框的文本內(nèi)容會受到浮動元素的影響,會移動以留出空間.用術語說就是浮動元素旁邊的行框被縮短,從而給浮動元素流出空間,因而行框圍繞浮動框
文字: 對于文字來說把敢,能感知到浮動元素的存在寄摆,如果位置足夠,就能夠?qū)崿F(xiàn)文本圍繞的效果修赞。
普通元素覆蓋和文字圍繞demo婶恼。

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

清除浮動: 解決浮動父容器高度塌陷問題。

清除浮動方法:
1柏副、最后添加一個空div勾邦,對它清理。缺點是增加了一個無意義的標簽割择。 加div眷篇。
2、使用clear:both(left,right)荔泳。
3蕉饼、使用BFC清除浮動

  /*方法1*/ ie可用
  .clearfix{
      *zoom:1;
  }


  /*方法2*/ 常用方法,但是ie沒有after偽元素

  .clearfix:after{
      content:"";
      display:table;
      clear:both;
  }

有幾種定位方式玛歌,分別是如何實現(xiàn)定位的昧港,參考點是什么,使用場景是什么沾鳄?

屬性 參考點 使用場景
inherit 規(guī)定應該從父元素繼承 position 屬性的值 原始位置 很少用
static 默認值,沒有定位慨飘,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明) 原始位置 很少用
relative 生成相對定位的元素 相對于元素本身正常位置進行定位。因此译荞,left:20px 會向元素的 left 位置添加20px 當元素需要做少量調(diào)整時
absolute 生成絕對定位的元素 相對于static定位以外的第一個祖先元素(offset parent)進行定位瓤的。 當需要做頁面垂直水平居中時
fixed 生成絕對定位的元素 相對于瀏覽器窗口進行定位。 當需要在瀏覽器內(nèi)做欄目時
sticky CSS3新屬性吞歼,表現(xiàn)類似position:relative和position:fixed的合體 在目標區(qū)域在屏幕中可見時圈膏,它的行為就像position:relative; 而當頁面滾動超出目標區(qū)域時,它的表現(xiàn)就像position:fixed篙骡,它會固定在目標位置稽坤。 很少用,兼容性差

CSS有三種基本的定位機制:普通流糯俗,浮動尿褪,絕對定位(absolute,fixed)
1、普通流是默認定位方式得湘,在普通流中元素框的位置由元素在html中的位置決定杖玲,這也是我們最常見的方式,其中position: static與position:relative屬于普通流的定位方式
2淘正、浮動定位機制
3摆马、絕對定位包括 absolute和 fixed

浮動元素:會對其他浮動元素產(chǎn)生影響臼闻,會對普通流元素的文本產(chǎn)生影響
絕對定位:不會

絕對定位寬度: 絕對定位寬度是收縮的,如果想撐滿父容器囤采,可以設置 width: 100%
清除浮動: 絕對定位能形成 BFC 可用來清除浮動 可用來阻止外邊距合并

z-index 有什么作用? 如何使用?

定義: z-index 屬性設置元素的堆疊順序述呐。擁有更高堆疊順序的元素總是會處于堆疊順序較低的元素的前面。
注釋:元素可擁有負的 z-index 屬性值蕉毯。
注釋:Z-index 僅能在定位元素上奏效(例如 position:absolute;)乓搬!
說明:
該屬性設置一個定位元素沿 z 軸的位置,z 軸定義為垂直延伸到顯示區(qū)的軸恕刘。如果為正數(shù)缤谎,則離用戶更近,為負數(shù)則表示離用戶更遠褐着。Z-index 僅能在定位元素(position:relative/absolute/fixed)上奏效。

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

position:relative;只相對自己原本位置發(fā)生偏移含蓉,不影響其它普通流中元素的位置,類似浮動元素。
margin:除了讓元素自身發(fā)生偏移還影響其它普通流中的元素项郊。

BFC 是什么馅扣?如何生成 BFC?BFC 有什么作用着降?舉例說明

BFC的全稱是 Block Format Content差油,塊級格式化上下文。通俗來講就是BFC是一個隔離的獨立容器任洞,容器里面的子元素不會影響到外面的子元素蓄喇,反之亦然。

如何生成BFC:

一個塊格式化上下文由以下之一創(chuàng)建:

  1. 根元素或其它包含它的元素
  2. 浮動元素 (元素的 float 不是 none)
  3. 絕對定位元素 (元素具有 position 為 absolute 或 fixed)
  4. 內(nèi)聯(lián)塊 (元素具有 display: inline-block)
  5. 表格單元格 (元素具有 display: table-cell交掏,HTML表格單元格默認屬性)
  6. 表格標題 (元素具有 display: table-caption, HTML表格標題默認屬性)
  7. 具有overflow 且值不是 visible 的塊元素
  8. display: flow-root
  9. column-span: all 應當總是會創(chuàng)建一個新的格式化上下文妆偏,即便具有 column-span: all 的元素并不被包裹在一個多列容器中。

作用: BFC 特性

  1. BFC會阻止垂直外邊距(margin-top盅弛、margin-bottom)折疊
    按照BFC的定義钱骂,只有同屬于一個BFC時,兩個元素才有可能發(fā)生垂直Margin的重疊挪鹏,這個包括相鄰元素见秽,嵌套元素,只要他們之間沒有阻擋(例如邊框讨盒,非空內(nèi)容解取,padding等)就會發(fā)生margin重疊。
    因此要解決margin重疊問題催植,只要讓它們不在同一個BFC就行了肮蛹,但是對于兩個相鄰元素來說勺择,意義不大,沒有必要給它們加個外殼伦忠,但是對于嵌套元素來說就很有必要了省核,只要把父元素設為BFC就可以了。這樣子元素的margin就不會和父元素的margin發(fā)生重疊
  2. BFC不會重疊浮動元素
  3. BFC可以包含浮動昆码。demo

局限性:
使用BFC使用float的時候會使父容器長度縮短气忠,而且還有個重要缺陷——父容器float解決了其塌陷問題,那么父容器的父容器怎么辦赋咽?overflow屬性會影響滾動條和絕對定位的元素旧噪;position會改變元素的定位方式,這是我們不希望的脓匿,display這幾種方式依然沒有解決低版本IE問題淘钟。。陪毡。

在什么場景下會出現(xiàn)外邊距合并米母?如何合并?如何不讓相鄰元素外邊距合并毡琉?給個父子外邊距合并的范例

外邊距合并: 外邊距合并指的是铁瞒,當兩個垂直外邊距相遇時,它們將形成一個外邊距桅滋。
合并后的外邊距的高度不是 ”上面段落的下邊距“ 與 ”下面段落的上邊距“ 的 求和 慧耍,而是兩者中的較大者。若都為負時丐谋,取絕對值大的芍碧。若出現(xiàn)一正一負的現(xiàn)象,則取兩者的和笋鄙。(demo

image.png
image.png
image.png

清除外邊距合并

  1. 消除邊距合并的方式:形成BFC师枣。但這里要注意的是,在形成BFC的方式中(float的值不為none萧落,display的值為inline-block践美、table-cell、table-caption)這兩個能直接起效果找岖。但(overflow的值為auto或者hidden)這個必須外面還要包裹一層父元素陨倡。
  2. 父子元素之間的外邊據(jù)合并
    消除邊距合并的方式一:給父元素加邊框
    消除邊距合并的方式二:給父元素加padding

父子外邊距合并的范例

例子

  1. alert效果
  2. 表單效果
  3. 模態(tài)框效果
  4. 導航欄效果
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市许布,隨后出現(xiàn)的幾起案子兴革,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杂曲,死亡現(xiàn)場離奇詭異庶艾,居然都是意外死亡,警方通過查閱死者的電腦和手機擎勘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門咱揍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棚饵,你說我怎么就攤上這事煤裙。” “怎么了噪漾?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵硼砰,是天一觀的道長。 經(jīng)常有香客問我欣硼,道長题翰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任诈胜,我火速辦了婚禮遍愿,結果婚禮上,老公的妹妹穿的比我還像新娘耘斩。我一直安慰自己,他們只是感情好桅咆,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布括授。 她就那樣靜靜地躺著,像睡著了一般岩饼。 火紅的嫁衣襯著肌膚如雪荚虚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天籍茧,我揣著相機與錄音版述,去河邊找鬼。 笑死寞冯,一個胖子當著我的面吹牛渴析,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吮龄,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼俭茧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漓帚?” 一聲冷哼從身側響起母债,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后毡们,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迅皇,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年衙熔,在試婚紗的時候發(fā)現(xiàn)自己被綠了登颓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡青责,死狀恐怖挺据,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脖隶,我是刑警寧澤扁耐,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站产阱,受9級特大地震影響婉称,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜构蹬,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一王暗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庄敛,春花似錦俗壹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怖亭,卻和暖如春涎显,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兴猩。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工期吓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倾芝。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓讨勤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛀醉。 傳聞我的和親對象是個殘疾皇子悬襟,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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

  • 一,浮動元素有什么特征拯刁?對父容器脊岳、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型割捅,浮動...
    DeeJay_Y閱讀 862評論 0 4
  • relative:生成相對定位的元素奶躯,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 933評論 0 2
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,737評論 1 92
  • 1. 浮動元素有什么特征儡蔓?對父容器、其他浮動元素疼邀、普通元素喂江、文字分別有什么影響? 浮動元素的特征:CSS設計flo...
    饑人谷_邵征鵬閱讀 543評論 0 0
  • 1.在什么場景下會出現(xiàn)外邊距合并拐袜?如何合并吉嚣?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例 概念:在CSS當...
    饑人谷_任磊閱讀 646評論 0 3