面试题

作者: 蟹棒同学 | 来源:发表于2021-03-16 20:18 被阅读0次

    1.Bfc

    1、BFC是一个独立的布局环境,BFC内部的元素布局与外部互不影响;
    2、可以通过一些条件触发BFC,从而实现布局上的需求或解决一些问题;
    3、可以将BFC想象成一个工具,无需探究其定义,只要着重理解其功能(特性)即可。
    BFC的触发条件
    1、根元素(<html>)
    2、float值非none
    3、overflow值非visible
    4、display值为inline-block、table-cell、table-caption、flex、inline-flex
    5、position值为absolute、fixed

    BFC的特性
    1、属于同一个BFC的两个相邻容器的上下margin会重叠(重点)
    2、计算BFC高度时浮动元素也参于计算(重点)
    3、BFC的区域不会与浮动容器发生重叠(重点)
    4、BFC内的容器在垂直方向依次排列
    5、元素的margin-left与其包含块的border-left相接触
    6、BFC是独立容器,容器内部元素不会影响容器外部元素

    注:其中1、2、3需重点理解,其特性和功能下面将用代码逐个演示;
    4、5、6为基本现象,按字面意思理解即可,不做重点说明。

    2.清除浮动的几种方式

    1.父级添加overflow属性
    2.使用after伪元素清除浮动(推荐使用)

      .clearfix:after{/*伪元素是行内元素 正常浏览器清除浮动方法*/
            content: "";
            display: block;/*转换为块级元素*/
            height: 0;/*高度为0*/
            clear:both;/*清除浮动*/
            visibility: hidden;/*隐藏盒子*/
    }
    

    3.额外标签法
    在父元素内,最后一个浮动标签后,新加一个标签,给其设置clear:both;

     .clear{
            clear:both;
    }
    <body>
        <div class="father">
            <div class="big">big</div>
            <div class="small">small</div>
            <div class="clear">额外标签法</div>
        </div>
        <div class="footer"></div>
    </body>
    

    3.Flex = 1 flex = 0

    flex:initial;1;0;auto;none
    initial:默认值,具体表现为,当容器有剩余空间时不增长,当容器空间不足时会缩小,尺寸自适应内容。
    0;none:具体表现为元素尺寸不会弹性增大,也不会弹性减小。
    0%表示固定尺寸是0,元素不具有弹性,那么,flex:0的元素最终的尺寸为最小宽度。
    flex:1、auto都是元素尺寸可以弹性增大,也可以弹性减小
    但是设置为1时会优先适应div内部最小尺寸的元素
    设置为auto时会优先适应div内部最大尺寸的元素


    image.png

    虽然都是充分分配容器内容,但是flex:1 的尺寸是较长的尺寸优先牺牲自己的尺寸,而flex:auto 中是较长的尺寸优先扩展自己的尺寸。
    所以,flex:1 更适合在等比例列表时使用,flex:auto适用于元素充分利用剩余空间,比如头部导航文字多少不一致时使用。

    4.Eggs 中间件封装接口

    5.flex 垂直居中

    6.Vue React 框架不同点

    react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流。
    而vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。

    7.node删除、创建文件

    相关文章

      网友评论

          本文标题:面试题

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