美文网首页
Day10:做点面试题1

Day10:做点面试题1

作者: 知鱼君 | 来源:发表于2019-04-17 12:23 被阅读0次

如何实现里两栏布局

利用float+margin实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<style type="text/css">
    #left {
    background-color: #f00;
    float: left;
    width: 100px;
    height: 500px;
}
#right {
    background-color: #0f0;
    height: 500px;
    margin-left: 100px; /*大于等于#left的宽度*/
}

</style>
<body>
    <div id='left'>左列定宽</div>
    <div id='right'>右列自适应</div>
</body>
</html>

使用float+overflow实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<style type="text/css">
#left {
    background-color: #f00;
    float: left;
    width: 100px;
    height: 500px;
}
#right {
    background-color: #0f0;
    height: 500px;
    overflow: hidden; /*触发bfc达到自适应*/
}

</style>
<body>
    <div id="left">左列定宽</div>
    <div id="right">右列自适应</div>
</body>
</html>

优缺点:

优点:代码简单,容易理解,无需关注定宽的宽度,利用bfc达到自适应效果
缺点:浮动脱离文档流,需要手动清除浮动,否则会产生高度塌陷;不支持ie6

使用table实现


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<style type="text/css">
#parent{
    width: 100%;
    display: table;
    height: 500px;
}
#left {
    width: 100px;
    background-color: #f00;
}
#right {
    background-color: #0f0;
}
#left,#right{
    display: table-cell;  /*利用单元格自动分配宽度*/
}

</style>
<body>
<div id="parent">
    <div id="left">左列定宽</div>
    <div id="right">右列自适应</div>
</div>
</body>
</html>

优缺点:

优点:代码简单,容易理解,无需关注定宽的宽度,利用单元格自动分配达到自适应效果
缺点:margin失效;设置间隔比较麻烦;不支持ie8-

使用绝对定位实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<style type="text/css">
#parent{
    position: relative;  /*子绝父相*/
}
#left {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #f00;
    width: 100px;
    height: 500px;
}
#right {
    position: absolute;
    top: 0;
    left: 100px;  /*值大于等于#left的宽度*/
    right: 0;
    background-color: #0f0;
    height: 500px;
}

</style>
<body>
<div id="parent">
    <div id="left">左列定宽</div>
    <div id="right">右列自适应</div>
</div>
</body>
</html>

使用flex实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<style type="text/css">
#parent{
    width: 100%;
    height: 500px;
    display: flex;
}
#left {
    width: 100px;
    background-color: #f00;
}
#right {
    flex: 1; /*均分了父元素剩余空间*/
    background-color: #0f0;
}


</style>
<body>
<div id="parent">
    <div id="left">左列定宽</div>
    <div id="right">右列自适应</div>
</div>
</body>
</html>

实现斐波那契数列

递归法

这是最容易实现的方法,写起来简单,但是效率并不是很高。

 var count;
    var count=0;
    var fib=function(n){
        count++;
        if(n==1||n==2){
            return 1;
        }
        else{
            return fib(n-2)+fib(n-1);
        }
    }

闭包递推法

虽然这里也是使用了递归,但是闭包大大减少了递归的次数,因为它是最先递归到fiba(3),就可以将fiba(3)存储到数组中,这样就可以根据数组中arr[3]+arr[2],得到fiba(4)的值,并存储在数组中,如此往复,便会得到最终结果。可以说,这是典型的用空间换时间的例子。

    var count2=0;
    var fiba = (function(){
        var arr = [0,1,1];   //第0位只是占位,从第一位开始算起
        return function(n){
            count2++;   
            var res=arr[n]; /*因为内部引用了arr,并返回,导致arr一直在内存中*/
            if(res){
                return res;
            }else{
                arr[n]=fiba(n-1)+fiba(n-2);
                return arr[n];
            }   
        }
    })();

浏览器的渲染机制?各环节怎么进行优化?

浏览器的渲染机制一般分为以下几个步骤:

  • 处理 HTML 并构建 DOM 树。
  • 处理 CSS 构建 CSSOM 树。
  • 将 DOM 与 CSSOM 合并成一个渲染树。
  • 根据渲染树来布局,计算每个节点的位置。
  • 调用 GPU 绘制,合成图层,显示在屏幕上。

优化:

DNS预解析

浏览器缓存

懒执行,懒加载

图片优化(减少像素点,base64,雪碧图)

script放在底部,因为js文件执行会阻塞渲染,加defer或async

CDN

相关文章

  • Day10:做点面试题1

    如何实现里两栏布局 利用float+margin实现 使用float+overflow实现 优缺点: 优点:代码简...

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 2018-09-26

    0926(DAY10) 书籍:《和时间做朋友》 字数: 一,控制你的大脑 礼拜天下午3点半,阿枫去商场买完东西回到...

  • D10-19 I4 分析学习

    学习总结: 【Day10—12】音频类APP 内容运营 >小组作业优秀借鉴点: 1、聚焦核心问题,拆解细化,抓大...

  • 一道C++面试题和补码、无符号数减法运算

    面试题在文章第4节。在看面试题之前,可以先看一下1-3节的知识点。 1. 补码 Two's Complement(...

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • 2019最新总结BAT最常见的208道Java面试题

    近段时间在准备实习的面试,在网上看到一份面试题,就慢慢试着做,争取每天积累一点点。 暂时手头上的面试题只有一份,题...

  • 4.8英语直播笔记

    Day10直播笔记: 家庭英语启蒙是什么?应该怎么做? 1.什么是家庭英语启蒙? ①学习对象:家长。 家长掌握了英...

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • DAY10我要开始潜心修炼啦!

    Day10我要开始潜心修炼啦! 今天agency meeting邀请了公司业绩NO.1的区域老大来为我们做分享,很...

网友评论

      本文标题:Day10:做点面试题1

      本文链接:https://www.haomeiwen.com/subject/qymgwqtx.html