BFC&邊距合并&瀏覽器

NO1扔亥,BFC 是什么?如何生成 BFC剩蟀?BFC 有什么作用慕趴?舉例說明痪蝇。###

** BFC的定義:**
BFC(Block formatting context)直譯為"塊級格式化上下文"。它是一個獨立的渲染區(qū)域冕房,只有Block-level box參與躏啰, 它規(guī)定了內(nèi)部的Block-level Box如何布局,并且與這個區(qū)域外部毫不相干耙册。
如何形成:

  • 根元素
  • float屬性不為none
  • position為absolute或fixed
  • display為inline-block, table-cell, table-caption, flex, inline-flex
  • overflow不為visible
    作用:
    創(chuàng)建BFC來避免垂直外邊距疊加
    創(chuàng)建BFC來清除浮動
    創(chuàng)建BFC來實現(xiàn)自適應(yīng)布局

NO2给僵,實現(xiàn)下方鏈接中的效果,附上預(yù)覽鏈接详拙。###

N03, 在什么場景下會出現(xiàn)外邊距合并帝际?如何合并?如何不讓相鄰元素外邊距合并饶辙?給個父子外邊距合并的范例###

  1. 只有在普通文檔流中會出現(xiàn)外邊距合并蹲诀,脫離了文檔流的不會出現(xiàn)外邊距合并
  2. a,正數(shù)的情況下合并外邊距最大的數(shù)
    b,負數(shù)的情況下合并絕對值最大的數(shù)
    c,一正一負的情況下兩數(shù)帶符號相加
  3. a,不同BFC的元素不會外邊距合并
    b,如果是父子關(guān)系,父元素設(shè)置了padding或邊框也可以阻止父子外邊距合并


    image.png

NO4什么是 CSS hack弃揽?在哪個網(wǎng)站查看標(biāo)簽(屬性)的瀏覽器兼容情況脯爪。###

由于不同廠商的瀏覽器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等矿微,或者是同一廠商的瀏覽器的不同版本痕慢,如IE6和IE7,對CSS的解析認識不完全一樣涌矢,因此會導(dǎo)致生成的頁面效果不一樣掖举,得不到我們所需要的頁面效果。
這個時候我們就需要針對不同的瀏覽器去寫不同的CSS娜庇,讓它能在不同的瀏覽器中也能得到我們想要的頁面效果塔次。
查詢?yōu)g覽器是否兼容 Can I use

NO5,ie6名秀、7的 hack 寫法是励负?###

1.屬性前綴法(即類內(nèi)部Hack):
例如 IE6能識別下劃線""和星號" ",IE7能識別星號" "泰偿,但不能識別下劃線"",IE6~IE10都認識"\9"蜈垮,但firefox前述三個都不能認識.

  color: red;
  _color: blue; /*ie6能夠識別*/
  *color: pink; /*ie6 ie7能夠識別*/
  color: yellow\9;  /*ie/edge 6-8*/
}

2.IE條件注釋法(即HTML條件注釋Hack):
IE10+已經(jīng)不再支持條件注釋.
<!–-[if IE 7]>
<link rel="stylesheet" href="ie7.css" type="text/css" />
<![endif]–->

如下屬性耗跛,兼容哪些瀏覽器裕照?###

inline-block:
min-width/min-height
:before,:afte:
div:hover
inline-block
background-size
圓角
陰影
動畫/漸變

屬性 兼容性查詢 IE
inline-block: http://caniuse.com/#search=inline-block >=ie8
min-width/min-height http://caniuse.com/#search=min-width http://caniuse.com/#search=min-height >=ie8
:before,:after: http://caniuse.com/#search=%3Abefore http://caniuse.com/#search=%3Aafter >=ie8
div:hover http://caniuse.com/#search=%3Ahover >=ie7
background-size http://caniuse.com/#search=background-size >=ie9
圓角 http://caniuse.com/#search=border-radius >=ie9
陰影 http://caniuse.com/#search=box-shadow http://caniuse.com/#search=text-shadow >=ie9
動畫/漸變 http://caniuse.com/#search=%40keyframes http://caniuse.com/#search=animation >=ie10

NO6,漸進增強和優(yōu)雅降級分別是什么意思调塌?###

  • 漸進增強(progressive enhancement): 針對低版本瀏覽器進行構(gòu)建頁面晋南,保證最基本的功能,然后再針對高級瀏覽器進行效果羔砾、交互等改進和追加功能達到更好的用戶體驗
  • 優(yōu)雅降級 (graceful degradation): 一開始就構(gòu)建完整的功能负间,然后再針對低版本瀏覽器進行兼容。
    stackoverflow-漸進增強和優(yōu)雅降級的區(qū)別

NO7姜凄, 以下工具/名詞是做什么的政溃?###

** 條件注釋 **
條件注釋 (conditional comment) 是于HTML源碼中被IE有條件解釋的語句。條件注釋可被用來向IE提供及隱藏代碼态秧。IE10不再支持條件注釋
** IE Hack **
是針對舊IE瀏覽器兼容的特殊寫法
屬性前綴法(即類內(nèi)部Hack):例如 IE6能識別下劃線""和星號" "董虱,IE7能識別星號" ",但不能識別下劃線""申鱼,IE6~IE10都認識"\9"愤诱,但firefox前述三個都不能認識
選擇器前綴法(即選擇器Hack)。大致分為三種:
1捐友、屬性前綴法(即類內(nèi)部Hack)
2淫半、選擇器前綴法(即選擇器Hack)
3、IE條件注釋法(即HTML條件注釋Hack)
js 能力檢測
各個版本的瀏覽器有許多不一致性匣砖,和各種怪癖科吭,因此需要用js對瀏覽器是否支持某種特定的能力,做檢測脆粥。確定之后砌溺,就可以給出相關(guān)的方案。
html5shiv.js
針對不支持HTML5標(biāo)簽的瀏覽器(比如ie7变隔、ie8)规伐,創(chuàng)建并模擬HTML5的標(biāo)簽的效果并使相應(yīng)的CSS生效。
respond.js
為不支持CSS3媒體查詢的瀏覽器(IE6-8)(以及其他可能不支持的瀏覽器)模擬CSS3的媒體查詢匣缘。
css reset
現(xiàn)在所使用的主流瀏覽器對一些標(biāo)簽的默認屬性上并沒有做到統(tǒng)一猖闪,所以我們偶爾會發(fā)現(xiàn),某個頁面在chrome瀏覽器上很正常肌厨,到了firefox上面卻有意想不到的偏差培慌。當(dāng)然編程人員不喜歡這樣的兼容性問題的,而reset.css就是解決默認樣式不兼容問題的辦法之一柑爸。

* {
padding: 0;
margin: 0;
} /*這是最簡化的CSS Reset吵护,會帶來性能問題*/
``
** normalize.css **
Normalize.css是一種CSS reset的替代方案,比起CSS reset直接去掉所有默認樣式,Normalize.css相對平和馅而。

*   保護有用的瀏覽器默認樣式而不是完全去掉它們
*   一般化的樣式:為大部分HTML元素提供
*   修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性
*   優(yōu)化CSS可用性:用一些小技巧
*   解釋代碼:用注釋和詳細的文檔來
    [https://segmentfault.com/a/1190000003021766](https://link.jianshu.com?t=https://segmentfault.com/a/1190000003021766)
**Modernizr**
是一個JS類庫祥诽,用來檢測瀏覽器的CSS3和HTML5能力,從而解決瀏覽器的兼容問題瓮恭。
[https://segmentfault.com/a/1190000003820989](https://link.jianshu.com/?t=https://segmentfault.com/a/1190000003820989)
**postCSS**
PostCSS是一個使用JavaScript插件來轉(zhuǎn)換CSS的工具雄坪。
[http://www.w3cplus.com/preprocessor/postcss-and-crazy-things-you-can-do-with-it.html](https://link.jianshu.com/?t=http://www.w3cplus.com/preprocessor/postcss-and-crazy-things-you-can-do-with-it.html)

####NO8, 盡可能多的列舉瀏覽器兼容的處理范例###

<!DOCTYPE html> /針對ie7/ie8/ie9提供不同的聲明/




<html dir="ltr" lang="en-US" class="no-js">





?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屯蹦,一起剝皮案震驚了整個濱河市维哈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌登澜,老刑警劉巖阔挠,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異帖渠,居然都是意外死亡谒亦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門空郊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來份招,“玉大人,你說我怎么就攤上這事狞甚∷ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵哼审,是天一觀的道長谐腰。 經(jīng)常有香客問我,道長涩盾,這世上最難降的妖魔是什么十气? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮春霍,結(jié)果婚禮上砸西,老公的妹妹穿的比我還像新娘。我一直安慰自己址儒,他們只是感情好芹枷,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著莲趣,像睡著了一般鸳慈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喧伞,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天走芋,我揣著相機與錄音绩郎,去河邊找鬼。 笑死翁逞,一個胖子當(dāng)著我的面吹牛嗽上,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播熄攘,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼彼念!你這毒婦竟也來了挪圾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逐沙,失蹤者是張志新(化名)和其女友劉穎哲思,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吩案,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡棚赔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了徘郭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靠益。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖残揉,靈堂內(nèi)的尸體忽然破棺而出胧后,到底是詐尸還是另有隱情,我是刑警寧澤抱环,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布壳快,位于F島的核電站,受9級特大地震影響镇草,放射性物質(zhì)發(fā)生泄漏眶痰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一梯啤、第九天 我趴在偏房一處隱蔽的房頂上張望竖伯。 院中可真熱鬧,春花似錦条辟、人聲如沸黔夭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽本姥。三九已至,卻和暖如春杭棵,著一層夾襖步出監(jiān)牢的瞬間婚惫,已是汗流浹背氛赐。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留先舷,地道東北人艰管。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蒋川,于是被迫代替她去往敵國和親牲芋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

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

  • BFC 是什么捺球?如何生成 BFC缸浦?BFC 有什么作用?舉例說明氮兵。 BFC 全稱 Block Formatting ...
    禮知白閱讀 360評論 0 1
  • BFC 是什么裂逐?如何生成 BFC?BFC 有什么作用泣栈?舉例說明卜高。 BFC全稱Block Formatting Co...
    饑人谷潘同學(xué)閱讀 253評論 0 0
  • 故事 故事 風(fēng)雨凄凄的夜, 燈光如此昏黃南片、且溫暖掺涛。 我以松間、以山野 悄悄寫下潔白的故事 故事尚是美好 和著沉沉的...
    播音1801B高越閱讀 114評論 0 0
  • 12點疼进,夜深了鸽照,透過窗戶還能看到遠處馬路上的路燈,一棵棵樹在潔白的燈光下颠悬,靜靜的矮燎,綠綠的,四處空無一人赔癌,仿佛整個世...
    beyourself1998閱讀 221評論 0 1
  • 現(xiàn)實是嚴(yán)酷的诞外,很多事情不是以個人意志為轉(zhuǎn)移的,同時灾票,也不是我們?nèi)萘坑邢薜拇竽X能想的到的峡谊。大抵說,就是目光短淺刊苍,見識...
    競走的蝸牛閱讀 715評論 0 0