最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 前端基础面试6/1-页面布局

    正文概述 掘金(山外小楼夜听风)   2021-07-18   547

    基础共讲六部分,如图

    前端基础面试6/1-页面布局

    页面布局

    题目:假设高度100px,三栏布局,其中左右栏宽度为300px,中间自适应

    前端基础面试6/1-页面布局

    想一下你有几种方式?????

    一:解决方案

    1:浮动

       <style>
                * {
                    margin: 0;
                    padding: 0;
                }
    
                .layout {
                    width: auto;
                    border: 3px solid black;
                    clear: both;
                }
    
                .layout .left {
                    float: left;
                    height: 100px;
                    width: 300px;
                    background-color: red;
                }
    
                .layout .right {
                    float: right;
                    width: 300px;
                    height: 100px;
                    background-color: blue;
                }
    
                .layout .center {
                    background-color: pink;
    
                }
            </style>
            <div class="layout">
                <p class="left">左</p>
                <p class="right">右</p>
                <div class="center">
                    <h1>666</h1>
                    <p> 1:中间部分</p>
                    <p> 2:中间部分</p>
                    <p> 3:中间部分</p>
                </div>
            </div>
    
    

    但是他有缺陷,如图所示

    前端基础面试6/1-页面布局

    2:绝对定位

        <style>
                * {
                    margin: 0;
                    padding: 0;
                }
    
                .layout {
                    position: relative;
                    width: auto;
                    border: 3px solid black;
    
                }
    
                .layout .left {
                    position: absolute;
                    left: 0;
                    height: 100px;
                    width: 300px;
                    background-color: red;
                }
    
                .layout .right {
                    position: absolute;
                    right: 0;
                    width: 300px;
                    height: 100px;
                    background-color: blue;
                }
    
                .layout .center {
                    position: absolute;
                    background-color: pink;
                    left: 300px;
                    right: 300px;
    
                }
            </style>
            <div class="layout">
                <div class="left">左</div>
                <div class="center">
                    <h1>666</h1>
                    <p> 1:中间部分</p>
                    <p> 2:中间部分</p>
                    <p> 3:中间部分</p>
                </div>
                <div class="right">右</div>
    

    亦有缺陷,如图

    前端基础面试6/1-页面布局

    3:flex布局

      <style>
                * {
                    margin: 0;
                    padding: 0;
                }
    
                .layout {
                    display: flex;
                    border: 3px solid black;
                    height: 100px;
                }
    
                .layout .left {
                    /* height: 100px; */
                    width: 300px;
                    background-color: red;
                }
    
                .layout .right {
                    width: 300px;
                    /* height: 100px; */
                    background-color: blue;
                }
    
                .layout .center {
                    flex: 1;
                    background-color: pink;
                }
            </style>
            <div class="layout">
                <div class="left">左</div>
                <div class="center">
                    <h1>666</h1>
                    <p> 1:中间部分</p>
                    <p> 2:中间部分</p>
                    <p> 3:中间部分</p>
                </div>
                <div class="right">右</div>
    
            </div>
    

    个人觉得flex比较完美,且新,很润哦 前端基础面试6/1-页面布局

    4:表格布局

            <style>
                * {
                    margin: 0;
                    padding: 0;
                }
    
                .layout {
                    display: table;
                    width: 100%;
                    border: 3px solid black;
                    height: 100px;
                }
    
                .layout .left {
                    display: table-cell;
                    width: 300px;
                    background-color: red;
                }
    
                .layout .right {
                    width: 300px;
                    display: table-cell;
                    background-color: blue;
                }
    
                .layout .center {
                    display: table-cell;
                    background-color: pink;
                }
            </style>
            <div class="layout">
                <div class="left">左</div>
                <div class="center">
                    <h1>666</h1>
                    <p> 1:中间部分</p>
                    <p> 2:中间部分</p>
                    <p> 3:中间部分</p>
                </div>
                <div class="right">右</div>
            </div>
    
    

    前端基础面试6/1-页面布局

    5:网格布局

     <style>
                * {
                    margin: 0;
                    padding: 0;
                }
    
                .layout {
                    display: grid;
                    grid-template-rows: 100px;
                    grid-template-columns: 300px auto 300px;
                    width: 100%;
                    border: 3px solid black;
                }
    
                .layout .left {
                    background-color: red;
                }
    
                .layout .right {
                    background-color: blue;
                }
    
                .layout .center {
                    background-color: pink;
                }
            </style>
            <div class="layout">
                <div class="left">左</div>
                <div class="center">
                    <h1>666</h1>
                    <p> 1:中间部分</p>
                    <p> 2:中间部分</p>
                    <p> 3:中间部分</p>
                </div>
                <div class="right">右</div>
            </div>
    

    前端基础面试6/1-页面布局

    二:延申,面试官会由此延申的问题

    1:优劣

    浮动:兼容性好。但会脱离文档流,处理不好,原地爆炸,亲妈买复活甲都不行那种

    绝对定位:快捷,不容易出问题。但会导致后面元素成一坨屎,实用性不太好

    flex:比较完美,解决了上述两个缺点

    表格布局:老前辈,兼容性好。但是当一个孩子优秀的时候,其他孩子就跟不上了,页面就乱了。先富带动后富???有点这意思啊。

    网格布局:新东西,代码量简化很多。

    2:把高度100px去掉,以上方案哪个还能适用?

    flex和表格布局

    小结:

    你要做到的

    前端基础面试6/1-页面布局

    同类型的题

    前端基础面试6/1-页面布局

    然后呢,最后一张图片是课后作业,自己动手写一下。当然方案肯定不止这五个,请大家评论区交流吧


    起源地下载网 » 前端基础面试6/1-页面布局

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元