浮動(dòng)定位BFC邊距合并

1. 浮動(dòng)元素有什么特征忆畅?對(duì)父容器衡未、其他浮動(dòng)元素、普通元素家凯、文字分別有什么影響?

特征:

  1. 浮動(dòng)元素脫離了正常的文檔流眠屎,使普通文檔流的元素?zé)o法識(shí)別浮動(dòng)元素,文檔的普通流中的元素表現(xiàn)的就像浮動(dòng)元素不存在一樣肆饶。
  2. 普通文檔流中的行內(nèi)框(如文本)能夠感知到浮動(dòng)元素的存在改衩,能夠?qū)崿F(xiàn)簡(jiǎn)單的文字環(huán)繞效果,這也是浮動(dòng)出現(xiàn)的本質(zhì)驯镊。
  3. 浮動(dòng)元素直到碰到它的包含框或另一個(gè)浮動(dòng)框的邊緣葫督。
  4. 浮動(dòng)元素具有BFC特性竭鞍,如浮動(dòng)元素間不會(huì)發(fā)生外邊距重疊。
  5. 清理浮動(dòng)后橄镜,該元素的邊框與浮動(dòng)元素的外邊距相鄰偎快,即外邊距可能在浮動(dòng)框內(nèi)。
  6. 浮動(dòng)元素具有包裹性洽胶,在沒有設(shè)置widh的情況下晒夹,寬度由內(nèi)容撐開。
  7. 即使是inline元素姊氓,浮動(dòng)后也能顯示的設(shè)置寬高丐怯。

影響:

  1. 因?yàn)槠洳辉倨胀ㄎ臋n流中, 能造成父元素“高度塌陷”翔横。
  2. 其他浮動(dòng)元素會(huì)"察覺"到浮動(dòng)元素的存在按照從左到右的"正常文檔流"排列读跷。
  3. 普通元素會(huì)表現(xiàn)的像浮動(dòng)元素不存在一樣,不過行內(nèi)框(如文本)能感知到禾唁。
  4. 行內(nèi)框(如文本)會(huì)環(huán)繞浮動(dòng)元素效览,實(shí)現(xiàn)文字環(huán)繞效果。

2. 清除浮動(dòng)指什么? 如何清除浮動(dòng)? 兩種以上方法

清除浮動(dòng)指元素的側(cè)邊不允許出現(xiàn)浮動(dòng)元素荡短,從而使得浮動(dòng)元素的不占據(jù)普通文檔流空間的使得父元素的高度塌陷問題得到解決丐枉,主要通過clear屬性實(shí)現(xiàn)。

方法:
1.使浮動(dòng)元素的父元素具有BFC特性掘托。

.clearfix {
    *zoom:1;         // 其中*為CSS hack矛洞,為了兼容IE6、7烫映,使其haslayout
}
.clearfix:after {
    content: "";
    display: "block";
    clear: both;
}

3. 有幾種定位方式,分別是如何實(shí)現(xiàn)定位的噩峦,參考點(diǎn)是什么锭沟,使用場(chǎng)景是什么?

含義
inherit 從父元素繼承position屬性的值识补,一般不用族淮。
static 默認(rèn)值,沒有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)
relative 生成相對(duì)定位的元素凭涂,相對(duì)于元素本身正常位置進(jìn)行定位祝辣,應(yīng)用于對(duì)其自身進(jìn)行細(xì)微調(diào)整。
absolute 生成絕對(duì)定位的元素切油,相對(duì)于非定位元素的第一個(gè)祖先元素進(jìn)行定位,沒有則相對(duì)于根元素,使用廣泛碟摆。
fixed 生成固定定位的元素,相對(duì)于瀏覽器窗口進(jìn)行定位娩鹉。需要一直停留在窗口的元素,例如某些導(dǎo)航稚伍,一些廣告彈窗弯予。
sticky 新的css3屬性,兼容性較差个曙,一般用JS實(shí)現(xiàn)锈嫩。它的表現(xiàn)類似position:relative和position:fixed的合體,目標(biāo)區(qū)域在屏幕中可見時(shí)垦搬,它的行為就像position:relative; 而當(dāng)頁面滾動(dòng)超出目標(biāo)區(qū)域時(shí)呼寸,它的表現(xiàn)就像position:fixed,它會(huì)固定在目標(biāo)位置悼沿。

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

參考深入理解CSS中的層疊上下文和層疊順序等舔,注意理解七階層疊水平,層疊上下文糟趾,層疊順序慌植。
z-index與元素在Z軸方向上的顯示有關(guān)。

當(dāng)元素發(fā)生層疊的時(shí)候:

  1. 誰大誰上:當(dāng)具有明顯的層疊水平標(biāo)示的時(shí)候义郑,如識(shí)別的z-indx值蝶柿,在同一個(gè)層疊上下文領(lǐng)域,層疊水平值大的那一個(gè)覆蓋小的那一個(gè)非驮。
  2. 后來居上:當(dāng)元素的層疊水平一致交汤、層疊順序相同的時(shí)候,在DOM流中處于后面的元素會(huì)覆蓋前面的元素劫笙。

z-index與層疊上下文:

  1. z-index不為auto的定位元素會(huì)創(chuàng)建層疊上下文芙扎。
  2. 定位元素默認(rèn)的z-index: auto可以看成z-index: 0。只不過z-index: 0會(huì)創(chuàng)建層疊上下文填大。
  3. z-index層疊順序的比較止步于父級(jí)層疊上下文戒洼。

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

position:relative相對(duì)自己原本的位置偏移,不影響其它普通流中元素的位置允华。
margin:除了讓元素自身發(fā)生偏移還影響其它普通流中的元素圈浇。

6. BFC 是什么?如何生成 BFC靴寂?BFC 有什么作用磷蜀?舉例說明

BFC:塊級(jí)格式化上下文(block formatting context),它是一個(gè)獨(dú)立的渲染區(qū)域百炬,只有Block-level box參與褐隆,它規(guī)定了內(nèi)部的Block-level box如何布局,并且與這個(gè)區(qū)域外部毫不相干剖踊。

形成條件:

  1. 根元素
  2. float不為none
  3. position為absolute或fixed
  4. display為inline-block妓灌、table-cell轨蛤、table-caption、flex虫埂、inline-flex
  5. overflow不為visible

特性及作用:

  1. BFC的區(qū)域不會(huì)與float box重疊祥山。 (外部)
  2. BFC就是頁面上的一個(gè)獨(dú)立的容器,容器里面的子元素不會(huì)影響到外面的元素掉伏。
  3. BFC元素不會(huì)發(fā)生margin重疊缝呕。
  4. 能感知到浮動(dòng)元素存在,計(jì)算BFC高度時(shí)斧散,浮動(dòng)元素也參與供常。可以利用其清理浮動(dòng)鸡捐。
    可以利用BFC特性及display: table-cell的包裹性栈暇,天生無溢出特性,絕對(duì)寬度也能自適應(yīng)箍镜,來實(shí)現(xiàn)兩欄自適應(yīng)布局:
.cell {
    display: table-cell;
    width: 2000px;
    *display: inline-block;     // 兼容IE6,7
    *width: auto;
}

7. 在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并源祈?如何合并?如何不讓相鄰元素外邊距合并色迂?給個(gè)父子外邊距合并的范例

只有普通文檔流中的塊元素的垂直外邊距才會(huì)發(fā)生外邊距合并香缺,行內(nèi)框、浮動(dòng)框歇僧、絕對(duì)定位框之間的外邊距不會(huì)疊加图张。

如何合并:

  1. 兩個(gè)margin都是正值的時(shí)候,取兩者的最大值
  2. 兩個(gè)margin都是負(fù)值的時(shí)候诈悍,取的是其中絕對(duì)值較大的祸轮,
  3. 有正有負(fù)時(shí),先取出負(fù) margin 中絕對(duì)值中最大的侥钳,然后适袜,和正 margin 值中最大的 margin 相加。

不讓相鄰元素外邊距合并方法:

  1. 利用 BFC會(huì)阻止垂直外邊距折疊的特性慕趴,將對(duì)應(yīng)元素轉(zhuǎn)換為BFC來解決邊距重疊。
  2. 在父元素中添加padding或border來將兩個(gè)外邊距分開鄙陡,阻止父元素與子元素的外邊距合并冕房。

父子外邊距合并的范例:

<div class="layout">
    <div class="ct">
        <div class="box"></div>
    </div>
</div>
.layout {
    border: 2px solid #000;
    background-color: #f00;
}
.ct {
    width: 100px;
    height: 100px;
    margin-top: 20px;
    background-color: #0f0;
}
.box {
    width: 50px;
    height: 50px;
    margin-top: 50px;
    background-color: #00f;
}

效果圖

由圖知:.ct的 margin-top: 20px;與.box的margin-top: 50px;上外邊距合并后,表現(xiàn)出的上外邊距為50px趁矾。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耙册,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子毫捣,更是在濱河造成了極大的恐慌详拙,老刑警劉巖帝际,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異饶辙,居然都是意外死亡蹲诀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門弃揽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脯爪,“玉大人,你說我怎么就攤上這事矿微『勐” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵涌矢,是天一觀的道長(zhǎng)掖举。 經(jīng)常有香客問我,道長(zhǎng)娜庇,這世上最難降的妖魔是什么塔次? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮思灌,結(jié)果婚禮上俺叭,老公的妹妹穿的比我還像新娘。我一直安慰自己泰偿,他們只是感情好熄守,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耗跛,像睡著了一般裕照。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上调塌,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天晋南,我揣著相機(jī)與錄音,去河邊找鬼羔砾。 笑死负间,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姜凄。 我是一名探鬼主播政溃,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼态秧!你這毒婦竟也來了董虱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎愤诱,沒想到半個(gè)月后云头,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淫半,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年溃槐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撮慨。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡竿痰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出砌溺,到底是詐尸還是另有隱情影涉,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布规伐,位于F島的核電站蟹倾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猖闪。R本人自食惡果不足惜鲜棠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望培慌。 院中可真熱鬧豁陆,春花似錦、人聲如沸吵护。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馅而。三九已至祥诽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓮恭,已是汗流浹背雄坪。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屯蹦,地道東北人维哈。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像登澜,于是被迫代替她去往敵國和親阔挠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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

  • relative:生成相對(duì)定位的元素帖渠,通過top,bottom,left,right的位置相對(duì)于其正常位置進(jìn)行定位...
    zx9426閱讀 932評(píng)論 0 2
  • 浮動(dòng)元素有什么特征锁摔?對(duì)父容器、其他浮動(dòng)元素哼审、普通元素谐腰、文字分別有什么影響? 特征: 脫離正常文檔流,沿其容器的左側(cè)...
    _Dot912閱讀 708評(píng)論 0 3
  • 1.浮動(dòng)元素有什么特征涩盾?對(duì)父容器十气、其他浮動(dòng)元素、普通元素春霍、文字分別有什么影響? 任何定義為float的元素砸西,都可以...
    QQQQQCY閱讀 260評(píng)論 0 0
  • 浮動(dòng)元素有什么特征?對(duì)父容器址儒、其他浮動(dòng)元素芹枷、普通元素、文字分別有什么影響? CSS浮動(dòng)的基本概念 浮動(dòng)模型也是一種...
    Sketch閱讀 197評(píng)論 0 0
  • 1.浮動(dòng)元素有什么特征莲趣?對(duì)父容器鸳慈、其他浮動(dòng)元素、普通元素喧伞、文字分別有什么影響? 浮動(dòng)元素不在文檔的普通流中走芋,它可以...
    yuhuan121閱讀 460評(píng)論 0 0