摘要:題目最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度,中間欄寬度自適應(yīng)。代碼如下效果如下所示乍一看實(shí)現(xiàn)了三列布局,但是題目要求等高,這個(gè)可就麻煩了。
題目
最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度200px,中間欄寬度自適應(yīng)。要求三欄的高度隨最高的一欄展示
解題 step1常規(guī)拿到這個(gè)面試題,首先想到的是三個(gè)盒子左浮動(dòng)右浮動(dòng),然后中間盒子給個(gè)左右外邊距,防止內(nèi)部元素被浮動(dòng)元素覆蓋。但是這樣只是實(shí)現(xiàn)了基本的三列布局。
代碼如下:
Document leftright1
2
3
4
5
效果如下所示:
step2乍一看實(shí)現(xiàn)了三列布局,但是題目要求等高,這個(gè)可就麻煩了。常規(guī)的css,非table布局很難解決這個(gè)問題。于是乎只能利用一些奇淫巧技。代碼改動(dòng)如下:
同樣的html片段,這次再看下效果:
實(shí)現(xiàn)了等高效果。當(dāng)時(shí)我是記得可以利用負(fù)邊距實(shí)現(xiàn)這個(gè)奇淫巧技的,但是筆試紙上寫的css寫的對(duì)不對(duì)忘記了。
回顧(原理探究)這里原理暫且不寫,感興趣的小伙伴可以查詢下負(fù)邊距相關(guān)的資料。
展開在跟面試官聊了以后,其實(shí)面試官是想考察我對(duì)flex的使用。那么如果用flex該如何實(shí)現(xiàn)這種三列布局呢?
flex實(shí)現(xiàn)的列布局Document leftcenter
123right
要點(diǎn)就是父容器設(shè)置為flex容器,子元素會(huì)自動(dòng)變?yōu)閒lex項(xiàng)目。這時(shí)候通過給center設(shè)置flex:1,讓其撐滿剩余空間。
這里面試官繼續(xù)問了: flex是三個(gè)屬性的縮寫,那你知道是哪三個(gè)屬性嗎?
這里直接說答案為:[ <"flex-grow"> <"flex-shrink">? || <"flex-basis"> ]
其中flex-grow規(guī)定了對(duì)flex項(xiàng)目對(duì)剩余空間的分配比例(剩余空間多的話)
flex-shrink規(guī)定了容器空間不夠時(shí),容器項(xiàng)目要被壓縮的比例。
flex-basic一般指項(xiàng)目占據(jù)主軸的空間,比如200px;
這里只對(duì)center的值設(shè)置了flex:1,那left,right,center的flex默認(rèn)值分別展開是什么呢?
這里通過F12審查可以得到結(jié)果:
.left與.right =>
flex-basic:auto(寬200px);flex-grow:0(不占剩余空間);flex-shrink:1(縮小比例占1份)
.center => flex-basic(0%);flex-grow:1(left與right都為0,所以它占據(jù)了全部的剩余空間);flex-shrink:1(縮小比例占1份)
因?yàn)楫?dāng)前空間足夠,所以這里flex-shrink沒有體現(xiàn)。
大概與這道題相關(guān)的css知識(shí)有這么多,如果是你,能做到哪一步呢?
參考鏈接阮一峰的flex布局講解
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/54737.html
摘要:題目最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度,中間欄寬度自適應(yīng)。代碼如下效果如下所示乍一看實(shí)現(xiàn)了三列布局,但是題目要求等高,這個(gè)可就麻煩了。 題目 最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度200px,中間欄寬度自適應(yīng)。要求三欄的高度隨最高的一欄展示 解題 step1 常規(guī)拿到這個(gè)面試題,首先想到的是三個(gè)盒子左浮動(dòng)右浮動(dòng)...
摘要:之后仔細(xì)的百度了一下,發(fā)現(xiàn)了這么一個(gè)叫做內(nèi)外補(bǔ)丁負(fù)值法的東西。在這個(gè)解決方案中,又涉及到了傳說中的負(fù)。深入研究之后又發(fā)現(xiàn)了圣杯布局雙飛翼布局等很多示例,確實(shí)要好好研究負(fù)邊距這個(gè)東西了。相關(guān)推薦那些年,奇妙的圣杯與雙飛翼,還有負(fù)邊距 2015-04-22 時(shí)候?qū)懙睦衔模驗(yàn)橄M盟阅昧顺鰜怼?那天被一個(gè)同學(xué)問了一個(gè)問題,三列的div,要求父div的高度和三個(gè)div的高度都和三個(gè)中字?jǐn)?shù)...
摘要:今天有位朋友一早從妙味課堂轉(zhuǎn)來一個(gè)有關(guān)于布局的面試題,需要解決,花了點(diǎn)時(shí)間寫了幾個(gè)放上來與大家分享受。 今天有位朋友一早從妙味課堂轉(zhuǎn)來一個(gè)有關(guān)于CSS布局的面試題,需要解決,花了點(diǎn)時(shí)間寫了幾個(gè)DEMO,放上來與大家分享受。那么我們在看DEMO之前一起先來看看這個(gè)面試題的具體要求吧: 左側(cè)固定寬,右側(cè)自適應(yīng)屏幕寬;左右兩列,等高布局;左右兩列要求有最小高度,例如:200px;(當(dāng)內(nèi)容超出...
摘要:有談?wù)劽嬖嚺c面試題對(duì)于前端面試的一些看法。動(dòng)態(tài)規(guī)劃算法的思想及實(shí)現(xiàn)方法幫大家理清動(dòng)態(tài)規(guī)劃的解決思路以及原理方法前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個(gè)方面。極客學(xué)院前端練習(xí)題道練習(xí)題,面試季練練手。 由數(shù)據(jù)綁定和排序引入的幾個(gè) JavaScript 知識(shí)點(diǎn) 在 JavaScript 的數(shù)據(jù)綁定和做簡單的表格排序中遇到的幾個(gè)知識(shí)點(diǎn) [[JS 基礎(chǔ)...
摘要:本文概要本文將介紹如下幾種常見的布局其中實(shí)現(xiàn)三欄布局有多種方式,本文著重介紹圣杯布局和雙飛翼布局。借助等高布局正負(fù)可解決,下文會(huì)介紹雙飛翼布局特點(diǎn)同樣也是三欄布局,在圣杯布局基礎(chǔ)上進(jìn)一步優(yōu)化,解決了圣杯布局錯(cuò)亂問題,實(shí)現(xiàn)了內(nèi)容與布局的分離。 本文概要 本文將介紹如下幾種常見的布局: showImg(https://segmentfault.com/img/remote/14600000...
閱讀 1457·2021-11-22 13:54
閱讀 4375·2021-09-22 15:56
閱讀 1828·2021-09-03 10:30
閱讀 1326·2021-09-03 10:30
閱讀 2092·2019-08-30 15:55
閱讀 1859·2019-08-30 14:13
閱讀 2065·2019-08-29 15:19
閱讀 2373·2019-08-28 18:13