昨天前端面試題,求指教。我是不是沒救了?

兩個div,第一個margin-bottom:40px,第二個margin-top:20px。問兩個div之間的距離是多少px?。當初回答60px,後來面試官笑著說是40px,求原理。-_-


這個確實有些基礎了,CSS最常見的邊距合併

邊距合併是指兩個外邊距相遇時會出現只留一個外邊距, 邊距大小是組合到其中的最大外邊距 。發生邊距合併基本有三種情況:

  1. 相鄰的兄弟姐妹元素
  2. 塊級父元素與其第一個/最後一個子元素
  3. 空塊元素

詳細的給個MDN文檔鏈接,慢慢看 外邊距合併

另外多說兩句,不太清楚題主是什麼樣的背景,既然是面試前端,還是把基礎搞搞好,這種問題其實有點兒太基礎了~


CSS中相鄰元素或者父子元素的margin重疊問題

解決方式就是給任何其中一個元素BFC化(Block Formating Context)

避免兩個設置有margin屬性的元素處在同一個BFC元素下(body元素就是一個具有BFC屬性的元素)


...你怎麼敢去面試的


很明顯是40啊,你看來基礎還不夠紮實啊。

這次面試失敗不要緊,老夫當年第一次面試也是失敗的一塌糊塗。多學多做,以後還有機會的。


40px,因為margin是會合併邊距的,以最大的為準。


其實沒必要太在意這個,因為新手回答錯誤很常見,你多寫點css,遇到這種情況的時候看一眼你自己就明白了。我面試考的都是js問題……css就問了個居中…………

這種問題,你自己寫個demo百度一下就明白了。

樓上那幾個罵你的都是比你老一點點的新手,來你面前秀優越的。


給人自信的有兩種可能,一種是實力非凡,一種是初生牛犢。


相信我

人家笑你是有道理的!

上下margin如果沒有BFC的話

是會重疊的


呵呵 缺少實踐


第一眼我也認為是60呢,不過我不是前端,哈哈


我會這道題,但是我覺得CSS越學越難,不敢去面試


首先,此題考察的是BFC垂直方向margin重疊的問題,有關BFC的具體知識可參考[這篇文章](http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html)

其次,我覺得像這種具體知識點的問題(尤其是偏基礎的)最好是先在谷歌百度上搜,或者上segmentfault上查閱提問,我覺得效率會比在知乎問高很多。


回答60px其實也不算錯吧,如果你再補上一句BFC的話


這個就是所謂的 bfc機制了 當兩個 margin相遇 取其中那個大的值,可以加個空的div隔開 當然世紀開發中一般不建議用空的沒有內容的.


去面試起碼看完css權威指南吧


你去面試的勇氣是什麼?這個超基礎啊


說實話這個倒不是很常見,垂直的話很少有人會把兩個元素分開去設置距離的,一般都只弄一個,嵌套的話倒是總遇到塌陷的問題。


平時一般都不這麼寫,這個真不知道,css看視頻學的,並沒有看過書,囧


好好看看書再去面試吧,margin塌陷這個太基礎了,不怪人家笑


自己業餘看了幾天視頻.....這道題我會


推薦閱讀:

尤雨溪等非cs轉前端的大神是怎麼學到編譯這個地步的?
公司每周都要開分享會,我是web前端工程師,不知道分享什麼好。大神你在哪裡?
參加Econf飢人谷線下前端分享會是一種怎樣的體驗?
應屆生前端找工作?
為什麼說「一入前端深似海」,入行需謹慎?

TAG:前端開發 | 前端工程師 | 精通web前端 |