嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

你真的了解盒模型么

2018-4-15    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點(diǎn)這里

說到前端, 大家第一反應(yīng)是不是都是vue、react、webpack等這些大大小小的框架或者工具, 但其實這些都是和js相關(guān)的, 真正的樣式會被大家忽略。其實真正呈現(xiàn)給大家看到華麗的頁面, 都是樣式才讓他們多了那份色彩。那么大家覺得簡單的css樣式, 真的簡單么? 讓我們一起來看下, 開啟css的入坑之旅, 今天一起跟大家簡單聊聊盒模型的相關(guān)問題......

盒模型

百度知道對此的解釋, 很有意思, 在此引用一下

CSS盒子模型, 內(nèi)容(CONTENT)就是盒子里裝的東西; 而填充(PADDING)就是怕盒子里裝的東西(貴重的)損壞而添加的泡沫或者其它抗震的輔料; 邊框(BORDER)就是盒子本身了; 至于邊界(MARGIN)則說明盒子擺放的時候的不能全部堆在一起,要留一定空隙保持通風(fēng),同時也為了方便取出。 —— 百度知道

640?wx_fmt=png&wxfrom=5&wx_lazy=1

這段描述很有趣, 很好的解釋margin、border、padding之間的關(guān)系, 不同模式下, 盒模型的width也是不同的, 那么好, 盒模型的第一個坑來了, width的范圍問題。

通常瀏覽器里, 盒模型的分為兩種模式, 兩種模式(怪異模式和標(biāo)準(zhǔn)模式)下width和height的值不同, 怪異模式的width和height包含border、padding和content, 而標(biāo)準(zhǔn)模式下的width和height只包含content, 這就是為啥有些瀏覽器渲染出來的dom標(biāo)簽排版會亂。解決也很簡單, 在標(biāo)簽的上面, 加上doctype的設(shè)置就好了, 讓瀏覽器統(tǒng)一用同一種標(biāo)準(zhǔn)去解析頁面。 怪異模式(左圖)和標(biāo)準(zhǔn)模式(右圖)的如下:

640?wx_fmt=png

當(dāng)然, 還有用來改變盒模型width范圍的一個css3的屬性, box-sizing:

當(dāng)設(shè)置為'border-box'時, width = border + padding + content;

當(dāng)設(shè)置為'content-box'時, width = content。

640?wx_fmt=png


    
  1.   <div class="wrapper z1"></div>

  2.   <div class="wrapper z2"></div>


    

   .wrapper{

  1.     width: 100px;

  2.     height: 50px;

  3.     padding: 10px;

  4.     background-color: #dedede;

   }

  1. .z1{

  2.     box-sizing: border-box;

  3. }

  4. .z2{

  5.     box-sizing: content-box;

     }

那么第一個div的實際寬度為100px, 第二個div的實際寬度為120px。

說完盒模型的padding和border, 那么再來吐槽下margin, 盒模型的margin的折疊(margin collapsing)問題, 有些也叫外邊距合并。

通常我們說的折疊, 都是垂直方向上的折疊, 水平方向是不存在的。標(biāo)準(zhǔn)模式下, 上下兩個兄弟的塊級元素, margin是會重疊的, 并且以最大的那個間距為準(zhǔn)(都為正數(shù))。

比如下面這段代碼:


    

   <div class="wrapper"></div>

   <div class="wrapper"></div>


    

   .wrapper{

  1.      width: 100px;

  2.      height: 50px;

  3.      margin: 10px;

  4.      background-color: #dedede;

  5.   }

640?wx_fmt=png

上圖灰色為重疊部分, 重疊10px的間距。

既然兄弟盒模型會有margin折疊, 那么父子呢? 答案是一定的, 父子也存在margin折疊的問題, 只不過條件稍微苛刻一點(diǎn), 我們一起來看下。 父子組件的折疊觸發(fā), 要求不能有間隙, 就是父組件不能設(shè)置border或padding值, 不能有空余的內(nèi)容, 且同時有margin值, 比如下面這段代碼:


    
  1. <div class="outer">

  2.   <div class="inner"></div>

  3. </div>


    

   .outer{

  1.     width: 200px;

  2.     height: 100px;

  3.     margin: 10px;

  4.     background-color: #dedede;

   }

   .inner{

  1.      width: 100px;

  2.      height: 50px;

  3.      margin: 10px;

  4.      background-color: #bcbcbc;

   }

當(dāng)然, 折疊后的空余部分, 也是取較大值, 且折疊觸發(fā), 只存在于垂直方向。

640?wx_fmt=png

上圖灰色為重疊部分, 重疊10px的間距。

剛才提到一個詞"間隙", 如果有間隙的話是不會觸發(fā)折疊的, 比如父級元素設(shè)置了padding, 或者子元素都設(shè)置了相對定位和top值等等。如下圖:

640?wx_fmt=png

看到這里, 我想有些同學(xué)會問了, 對于這些 margin collapsing, 有沒有一個統(tǒng)一的整理, 對于大轉(zhuǎn)轉(zhuǎn)的FEer, 我們當(dāng)然想到了大家的前面, 請看下面:

  • Margins between a floated box and any other box do not collapse (not even between a float and its in-flow children).

  • Margins of elements that establish new block formatting contexts (such as floats and elements with 'overflow' other than 'visible') do not collapse with their in-flow children.

  • Margins of absolutely positioned boxes do not collapse (not even with their in-flow children).

  • Margins of inline-block boxes do not collapse (not even with their in-flow children).

  • The bottom margin of an in-flow block-level element always collapses with the top margin of its next in-flow block-level sibling, unless that sibling has clearance.

  • The top margin of an in-flow block element collapses with its first in-flow block-level child's top margin if the element has no top border, no top padding, and the child has no clearance.

  • The bottom margin of an in-flow block box with a 'height' of 'auto' and a 'min-height' of zero collapses with its last in-flow block-level child's bottom margin if the box has no bottom padding and no bottom border and the child's bottom margin does not collapse with a top margin that has clearance.

  • A box's own margins collapse if the 'min-height' property is zero, and it has neither top or bottom borders nor top or bottom padding, and it has a 'height' of either 0 or 'auto', and it does not contain a line box, and all of its in-flow children's margins (if any) collapse.

這是從W3C里引用的原文, 這8條規(guī)則是特殊的不折疊的情況, 簡單翻譯過來(僅供參考):

  • 浮動的盒模型不會margin折疊

  • 創(chuàng)建BFC與子不折疊

  • 設(shè)置定位的盒模型不會折疊

  • 行內(nèi)塊級元素的盒模型不折疊

  • 兄弟元素有間隙不折疊

  • 父子盒模型元素, 孩子元素有border、padding、有浮動就不折疊

  • height為auto、min-height為0的塊級盒模型, 和它的最后一個沒有border和padding的孩子盒模型底邊距折疊, 且孩子的底部外邊距和被清除浮動上邊距有間隙不折疊。

  • 如果min-height為0, 上下border、上下padding都為0, height為0或auto, 且沒有行內(nèi)盒模型, 他的孩子節(jié)點(diǎn)都會折疊

有點(diǎn)晦澀難懂, 大家不妨消化一下。說到這, 再補(bǔ)充一下, 盒模型margin折疊的計算問題, 總結(jié)了以下幾點(diǎn):

  • 同為正值時, 取較大者為兩者為間距

  • 一正一負(fù)時, 正負(fù)相加為間距, 若結(jié)果為負(fù)值, 則兩者部分重合

  • 都為負(fù)值時, 兩者重合, 且重合部分為絕對值大者

舉個例子:


    
  1.    <div class="wrapper z-01"></div>

  2.    <div class="wrapper z-02"></div>


    
  1.    .wrapper{

  2.        width: 100px;

  3.        height: 50px;

  4.        background-color: #dedede;

  5.    }

  6.    .z-01{

  7.        margin: -10px;

  8.    }

  9.    .z-02{

  10.        margin: -15px;

  11.    }

兩者都為負(fù)值, 兩個div上下重合, 且重合間距為15px。

暫時就想到這么多, css的學(xué)習(xí)之路任重而道遠(yuǎn), 盒模型又是重中之重。上面有描述不對的地方也歡迎各位同學(xué)批評指正, 也歡迎大家來到大轉(zhuǎn)轉(zhuǎn)FE做客, 一起討論一起研究前端的技術(shù)問題。志同道合的同學(xué), 也歡迎加入我們轉(zhuǎn)轉(zhuǎn)FE團(tuán)隊, 咱們一起打拼。

藍(lán)藍(lán)設(shè)計www.sdgs6788.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)

日歷

鏈接

個人資料

藍(lán)藍(lán)設(shè)計的小編 http://www.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 在线视频国产日韩| 国产女主播视频一区二区| 美女91精品| 日韩午夜视频在线观看| 国产精品成人免费精品自在线观看| 亚洲一级片在线观看| 久久综合色88| 一本色道久久99精品综合 | 欧美伦理a级免费电影| 一区二区三区精品视频| 久久久精品免费视频| 亚洲裸体俱乐部裸体舞表演av| 国产精品久久久久久久久久久久| 久久国产精彩视频| 亚洲裸体在线观看| 久久天天狠狠| 亚洲视频专区在线| 永久久久久久| 国产精品久久久久秋霞鲁丝 | 六十路精品视频| 亚洲一区二区高清| 亚洲高清视频一区| 亚洲一区二区三区四区中文 | 午夜亚洲福利| 久久久久五月天| 一卡二卡3卡四卡高清精品视频| 久久嫩草精品久久久精品一| 亚洲视频成人| 亚洲大胆av| 国产午夜精品久久久久久免费视| 欧美日韩爆操| 美女精品视频一区| 欧美在线视频免费| 亚洲午夜精品视频| 亚洲毛片在线免费观看| 欧美高清视频一区二区三区在线观看| 亚洲欧美日韩精品久久| 日韩视频中午一区| 亚洲国产美女精品久久久久∴| 国产女主播一区二区三区| 欧美日韩一区在线观看视频| 欧美不卡视频| 看欧美日韩国产| 久久精品一区四区| 性久久久久久久| 亚洲自拍偷拍福利| 亚洲婷婷综合久久一本伊一区| 亚洲精品乱码久久久久久日本蜜臀 | 欧美激情一区三区| 久久综合久久综合久久| 欧美一区二区三区视频| 亚洲影院高清在线| 一区二区三区精品视频在线观看| 亚洲激情六月丁香| 亚洲国产精品成人精品| 在线免费观看欧美| 在线观看亚洲一区| 亚洲成色999久久网站| 精品成人a区在线观看| 国产自产2019最新不卡| 国产一区成人| 狠狠色丁香久久婷婷综合丁香| 国产亚洲一区二区三区在线观看 | 亚洲高清在线观看| 欧美国内亚洲| 欧美成人午夜| 亚洲国产毛片完整版| 亚洲二区在线| 亚洲激情成人在线| 日韩视频一区| 亚洲图色在线| 欧美一站二站| 久久久免费精品视频| 牛牛影视久久网| 欧美激情综合亚洲一二区| 欧美激情一区二区三级高清视频| 免费人成网站在线观看欧美高清 | 欧美日韩喷水| 国产精品成人在线观看| 国产精品视频网址| 国产视频丨精品|在线观看| 国产一区免费视频| 亚洲国产成人午夜在线一区| 亚洲精品美女91| 亚洲一区二区精品视频| 欧美在线91| 麻豆成人小视频| 亚洲国产精品黑人久久久| 日韩午夜一区| 午夜精品久久久久久久99樱桃 | 国产精品美女xx| 国产女主播一区二区三区| 在线观看视频日韩| aa日韩免费精品视频一| 午夜在线a亚洲v天堂网2018| 久久久久一区二区| 亚洲国产精品va在看黑人| 一本色道久久综合| 欧美一区午夜精品| 欧美福利视频在线观看| 国产精品久久9| 尤妮丝一区二区裸体视频| 亚洲美女av电影| 羞羞色国产精品| 欧美成人一区二区| 亚洲视频第一页| 久久久久久久久久久一区| 欧美日韩国产在线看| 国产午夜精品麻豆| 日韩视频免费看| 久久精品国产精品亚洲精品| 亚洲国产99| 午夜精品免费在线| 欧美韩日一区| 国产一区二区三区四区在线观看 | 亚洲精品美女免费| 午夜精品久久| 欧美激情二区三区| 午夜久久久久| 欧美精品激情| 国模精品一区二区三区色天香| 亚洲免费观看高清在线观看 | 欧美h视频在线| 国产精品视频| 亚洲国产小视频| 欧美一区二区视频免费观看| 亚洲福利免费| 欧美在线亚洲| 国产精品极品美女粉嫩高清在线| 亚洲激情在线| 久久久综合香蕉尹人综合网| 在线亚洲免费| 欧美日本成人| 亚洲电影免费观看高清完整版在线观看 | 欧美高清hd18日本| 午夜精品久久久久久久99黑人| 欧美精品免费在线观看| 一区久久精品| 欧美专区日韩视频| 一区二区三区欧美日韩| 欧美精品激情在线| 亚洲国产婷婷香蕉久久久久久| 久久久7777| 亚洲欧美中文日韩v在线观看| 欧美精品麻豆| 亚洲精品免费在线| 欧美波霸影院| 久久精品欧美| 国产伦精品一区二区三区照片91 | 国产精品免费一区二区三区在线观看| 亚洲美女精品成人在线视频| 欧美成人国产va精品日本一级| 久久成人免费| 国产三级欧美三级| 欧美影院视频| 午夜精品福利在线| 国产精品尤物| 欧美伊人久久久久久午夜久久久久 | 亚洲精品1区| 欧美刺激午夜性久久久久久久| 亚洲大片av| 国产欧美欧洲在线观看| 午夜精品视频在线观看一区二区| 一本久久青青| 欧美三级网址| 亚洲一区二区三区午夜| 在线一区二区三区四区五区| 欧美午夜精品电影| 亚洲小说欧美另类社区| 一区二区久久| 欧美日韩一区高清| 亚洲欧美国产精品桃花| 亚洲午夜视频在线| 国产精品制服诱惑| 久久久久久有精品国产| 久久岛国电影| 原创国产精品91| 欧美电影在线观看| 欧美精品v国产精品v日韩精品| 一个色综合导航| 亚洲无毛电影| 国产麻豆91精品| 久久人人97超碰国产公开结果| 久久综合成人精品亚洲另类欧美| 亚洲高清免费| 亚洲欧洲一区二区三区| 欧美日韩你懂的| 亚洲欧美一区二区三区极速播放| 亚洲欧美日韩国产中文 | 欧美午夜精品理论片a级按摩 | 久久精彩视频| 亚洲福利免费| 一本不卡影院| 国产日韩欧美在线看| 另类图片国产| 欧美日韩国产色站一区二区三区| 午夜免费日韩视频| 久热精品视频在线观看一区| 亚洲神马久久| 亚洲欧美国产77777|