昨天前端面試題,求指教。我是不是沒救了?
兩個div,第一個margin-bottom:40px,第二個margin-top:20px。問兩個div之間的距離是多少px?。當初回答60px,後來面試官笑著說是40px,求原理。-_-
這個確實有些基礎了,CSS最常見的邊距合併
邊距合併是指兩個外邊距相遇時會出現只留一個外邊距, 邊距大小是組合到其中的最大外邊距 。發生邊距合併基本有三種情況:
- 相鄰的兄弟姐妹元素
- 塊級父元素與其第一個/最後一個子元素
- 空塊元素
詳細的給個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飢人谷線下前端分享會是一種怎樣的體驗?
※應屆生前端找工作?
※為什麼說「一入前端深似海」,入行需謹慎?