前端面試題(1)——頁(yè)面布局

題目:假設(shè)高度已知,請(qǐng)寫(xiě)出三欄布局董栽,其中左欄码倦、右欄寬度各為300px;中間自適應(yīng)锭碳。

屏幕快照 2018-03-25 上午11.28.45.png

我這邊總結(jié)了五種方法袁稽,如有不正確,歡迎批評(píng)指正~

  • 浮動(dòng)
  • 絕對(duì)定位
  • flex布局
  • 表格布局
  • 網(wǎng)格布局

一擒抛、浮動(dòng)

    <section class="layout float">
        <style media="screen">
            html * {
                margin: 0;
                padding: 0;
            }

            .layout article div {
                min-height: 100px;
            }

            .layout.float .left {
                float: left;
                background: red;
                width: 300px;
            }
            
            .layout.float .right {
                float: right;
                background: blue;
                width: 300px;
            }
            
            .layout.float .center {
                background: yellow;
            }
        </style>
        <article class="left-center-right">
            <div class="left"></div>
            <div class="right"></div>
            <div class="center">
                 <h2>浮動(dòng)布局</h2>
                1推汽、浮動(dòng)布局左右固定寬度补疑,中間自適應(yīng) 
                2、浮動(dòng)布局左右固定寬度歹撒,中間自適應(yīng)
            </div>
        </article>
    </section>

二莲组、絕對(duì)定位

     <section class="layout position">
        <style media="screen">
            html * {
                margin: 0;
                padding: 0;
            }

            .layout article div {
                min-height: 100px;
            }

            .layout.position .left-center-right>div {
                position: absolute;
            }
            
            .layout.position .left {
                left: 0;
                width: 300px;
                background: red;
            }
            
            .layout.position .right {
                right: 0;
                width: 300px;
                background: blue;
            }
            
            .layout.position .center {
                left: 300px;
                right: 300px;
                background: yellow;
            }
        </style>
        <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
                <h2>絕對(duì)定位</h2>
                1、定位布局左右固定寬度暖夭,中間自適應(yīng) 
                2锹杈、定位布局左右固定寬度,中間自適應(yīng)
            </div>
            <div class="right"></div>
        </article>
    </section>

三迈着、flex布局

    <section class="layout flex">
        <style>
            html * {
                margin: 0;
                padding: 0;
            }

            .layout article div {
                min-height: 100px;
            }

            .layout.flex .left-center-right {
                display: flex;
            }
            
            .layout.flex .left {
                width: 300px;
                background: red;
            }
            
            .layout.flex .center {
                flex: 1;
                background: yellow;
            }
            
            .layout.flex .right {
                width: 300px;
                background: blue;
            }
        </style>
        <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
                <h2>flex布局</h2>
                1嬉橙、flex布局左右固定寬度,中間自適應(yīng) 
                2寥假、flex布局左右固定寬度市框,中間自適應(yīng)
            </div>
            <div class="right"></div>
        </article>
    </section>

四、表格布局

    <section class="layout table">
        <style>
            html * {
                margin: 0;
                padding: 0;
            }

            .layout article div {
                min-height: 100px;
            }

            .layout.table .left-center-right {
                display: table;
                height: 100px;
            }
            
            .layout.table .left-center-right>div {
                display: table-cell;
            }
            
            .layout.table .left {
                background: red;
                width: 300px;
            }
            
            .layout.table .center {
                background: yellow;
            }
            
            .layout.table .right {
                background: blue;
                width: 300px;
            }
        </style>
        <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
                <h2>tabale布局</h2>
                1糕韧、table布局左右固定寬度枫振,中間自適應(yīng) 
                2、table布局左右固定寬度萤彩,中間自適應(yīng)
            </div>
            <div class="right"></div>
        </article>
    </section>

五粪滤、網(wǎng)格布局

    <section class="layout grid">
        <style media="screen">
            html * {
                margin: 0;
                padding: 0;
            }

            .layout article div {
                min-height: 100px;
            }

            .layout.grid .left-center-right {
                display: grid;
                width: 100%;
                grid-template-rows: 100px;
                grid-template-columns: 300px auto 300px;
            }
            
            .layout.grid .left {
                background: red;
            }
            
            .layout.grid .center {
                background: yellow;
            }
            
            .layout.grid .right {
                background: blue;
            }
        </style>
        <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
                <h2>網(wǎng)格布局</h2>
                1、網(wǎng)格布局左右固定寬度雀扶,中間自適應(yīng) 
                2杖小、網(wǎng)格布局左右固定寬度,中間自適應(yīng)
            </div>
            <div class="right"></div>
        </article>
    </section>

總結(jié)

  1. 這五種解決方案各自的優(yōu)缺點(diǎn)愚墓;
  • 浮動(dòng):缺點(diǎn)浮動(dòng)是脫離文檔流的予权,需要做清浮動(dòng)處理;優(yōu)點(diǎn)是兼容性很好浪册。
  • 絕對(duì)定位:缺點(diǎn)是布局脫離文檔流扫腺,子元素也必須脫離文檔流,可使用用性比較差村象;優(yōu)點(diǎn)是快捷笆环,不容易出問(wèn)題。
  • flex布局:為解決以上兩種布局方式的不足而出現(xiàn)的厚者,比較完美躁劣,現(xiàn)在移動(dòng)端基本都屬于flex布局。
  • 表格布局:缺點(diǎn)是操作繁瑣库菲,對(duì)seo也不友好账忘,當(dāng)其中一個(gè)單元格的高度變大時(shí),其他單元格的高度也會(huì)隨之變大,優(yōu)點(diǎn)是兼容性非常好闪萄。
  • 網(wǎng)格布局:缺點(diǎn)是新出的技術(shù),低版本瀏覽器兼容性不是很好奇颠,優(yōu)點(diǎn)是可以做許多復(fù)雜的事情败去,但是代碼量要簡(jiǎn)化的多。
  1. 當(dāng)高度不定時(shí)烈拒,兩側(cè)的高度也跟這中間的高度撐開(kāi)圆裕,以上五種有哪幾種可以繼續(xù)用,哪幾種不能用了荆几;
     <article class="left-center-right">
         <div class="left"></div>
         <div class="center">
             1吓妆、網(wǎng)格布局左右固定寬度,中間自適應(yīng) 
             2吨铸、網(wǎng)格布局左右固定寬度行拢,中間自適應(yīng)
             <p>增加高度</p>
             <p>增加高度</p>
             <p>增加高度</p>
             <p>增加高度</p>
             <p>增加高度</p>
             <p>增加高度</p>
         </div>
         <div class="right"></div>
     </article>
  • 通過(guò)看效果:浮動(dòng)和絕對(duì)定位以及網(wǎng)格布局是不能用的,flex布局和表格布局可以繼續(xù)使用诞吱。
  • 在這個(gè)面試過(guò)程中一定要說(shuō)出哪個(gè)能用舟奠,哪個(gè)不能用,以及不能用的原因房维。
  • 浮動(dòng)可以延伸到BFC沼瘫,可以去了解BFC相關(guān)的知識(shí);
  1. 兼容性咙俩;如果現(xiàn)在要在業(yè)務(wù)中實(shí)現(xiàn)耿戚,你覺(jué)得最優(yōu)選擇時(shí)哪種;

頁(yè)面布局小結(jié)

  1. 語(yǔ)義化掌握要到位
  2. 頁(yè)面布局理解深刻
  3. CSS基礎(chǔ)知識(shí)扎實(shí)
  4. 思維靈活且積極上進(jìn)(對(duì)新技術(shù)的了解阿趁,如網(wǎng)格布局)
  5. 代碼書(shū)寫(xiě)規(guī)范
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末膜蛔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子脖阵,更是在濱河造成了極大的恐慌飞几,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件独撇,死亡現(xiàn)場(chǎng)離奇詭異屑墨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)纷铣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)卵史,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人搜立,你說(shuō)我怎么就攤上這事以躯。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵忧设,是天一觀的道長(zhǎng)刁标。 經(jīng)常有香客問(wèn)我,道長(zhǎng)址晕,這世上最難降的妖魔是什么膀懈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮谨垃,結(jié)果婚禮上启搂,老公的妹妹穿的比我還像新娘。我一直安慰自己刘陶,他們只是感情好胳赌,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著匙隔,像睡著了一般疑苫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纷责,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天缀匕,我揣著相機(jī)與錄音,去河邊找鬼碰逸。 笑死乡小,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饵史。 我是一名探鬼主播满钟,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胳喷!你這毒婦竟也來(lái)了湃番?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吭露,失蹤者是張志新(化名)和其女友劉穎吠撮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體讲竿,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泥兰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了题禀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞋诗。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖迈嘹,靈堂內(nèi)的尸體忽然破棺而出削彬,到底是詐尸還是另有隱情全庸,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布融痛,位于F島的核電站壶笼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏雁刷。R本人自食惡果不足惜覆劈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望安券。 院中可真熱鬧墩崩,春花似錦氓英、人聲如沸侯勉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)址貌。三九已至,卻和暖如春徘键,著一層夾襖步出監(jiān)牢的瞬間练对,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工吹害, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留螟凭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓它呀,卻偏偏與公主長(zhǎng)得像螺男,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纵穿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359