美文网首页
Why can't I change

Why can't I change

作者: 无迹落花 | 来源:发表于2019-04-26 16:23 被阅读0次
    1、如何理解CSS的盒子模型?
    标准盒子模型:宽度=内容的宽度(content)+ border + padding
    
    低版本IE盒子模型:宽度=内容宽度(content+border+padding)
    
    2、 BFC?
    • 什么是 BFC

      BFC(Block Formatting Context)格式化上下文,是 Web 页面中盒模型布局的 CSS 渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。

    • 形成 BFC 的条件

      • 浮动元素,float 除 none 以外的值
      • 定位元素,position(absolute,fixed)
      • display 为以下其中之一的值 inline-block,table-cell,table-caption
      • overflow 除了 visible 以外的值(hidden,auto,scroll)
    • BFC 的特性

      • 内部的 Box 会在垂直方向上一个接一个的放置。
      • 垂直方向上的距离由 margin 决定
      • bfc 的区域不会与 float 的元素区域重叠。
      • 计算 bfc 的高度时,浮动元素也参与计算
      • bfc 就是页面上的一个独立容器,容器里面的子元素不会影响外面元素。
    3、如何清除浮动

    不清楚浮动会发生高度塌陷:浮动元素父元素高度自适应(父元素不写高度时,子元素写了浮动后,父元素会发生高度塌陷)

    • clear清除浮动(添加空div法)在浮动元素下方添加空div,并给该元素写css样式: {clear:both;height:0;overflow:hidden;}
    • 给浮动元素父级设置高度
    • 父级同时浮动(需要给父级同级元素添加浮动)
    • 父级设置成inline-block,其margin: 0 auto居中方式失效
    • 给父级添加overflow:hidden 清除浮动方法
    • 万能清除法 after伪类 清浮动(现在主流方法,推荐使用)
    .float_div:after{
        content:".";
        clear:both;
        display:block;
        height:0;
        overflow:hidden;
        visibility:hidden;
    }
    .float_div{
        zoom:1
    } 
    
    
    4、 用纯CSS创建一个三角形的原理是什么?
    5、 css3实现0.5px的细线
    6、css实现三栏布局 (左右固定,中间自适应)
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            .box {
                display: flex;
                justify-content: center;
                height: 200px;
            }
            .left {
                width: 200px;
                background-color: red;
                height: 100%;
            }
            .content {
                background-color: yellow;
                flex: 1;
            }
            .right {
                width: 200px;
                background-color: green;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="left"></div>
            <div class="content"></div>
            <div class="right"></div>
        </div>
    </body>
    </html>
    
    6、让一个div垂直居中

    宽度高度已知的     宽度和高度未知     flex布局

    7、谈一谈css的伪类和伪元素

    1、闭包
    2、js中函数执行
    3、new一个对象的过程中发生了什么嘛
    4、宏任务跟微任务
    5、防抖和节流
    6、数组的常用方法
    7、立即执行函数
    8、js原型和原型链
    9、js中call,apply,bind方法
    10、Promise
    11、async/await
    12、深拷贝、浅拷贝
    13、跨域
    14、for in 和 for of
    15、如何阻止冒泡?
    16、如何阻止默认事件?
    17、var,let,const
    18、Class
    19、Set
    20、Map

    1、实现一个new操作符
    2、实现一个call或 apply
    3、实现一个Function.bind
    4、实现一个继承
    5、手写一个Promise(中高级必考)
    6、手写防抖(Debouncing)和节流(Throttling)
    7、手写一个JS深拷贝
    
    function deepCopy(obj) {
        //判断是否是简单数据类型,
        if (typeof obj == "object") {
            //复杂数据类型
            var result = obj.constructor == Array ? [] : {};
            for (let i in obj) {
                result[i] = typeof obj[i] == "object" ? deepCopy(obj[i]) : obj[i];
            }
        } else {
            //简单数据类型 直接 == 赋值
            var result = obj;
        }
        return result;
    }
    
    

    1、Vue的双向数据绑定原理是什么?
    2、请详细说下你对vue生命周期的理解?
    • beforeCreate 创建前执行(vue实例的挂载元素$el和数据对象data都为undefined,还未初始化)

    • created 完成创建 (完成了data数据初始化,el还未初始化)

    • beforeMount 载入前(vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。)

    • mounted 载入后html已经渲染(vue实例挂载完成,data.message成功渲染。)

    • beforeUpdate 更新前状态(view层的数据变化前,不是data中的数据改变前)

    • updated 更新状态后

    • beforeDestroy 销毁前

    • destroyed 销毁后 (在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在)

    说一下每一个阶段可以做的事情

    • beforeCreate:可以在这里加一个loading事件,在加载实例时触发。

    • created:初始化完成时的事件写这里,如果这里结束了loading事件,异步请求也在这里调用。

    • mounted:挂在元素,获取到DOM节点

    • updated:对数据进行处理的函数写这里。

    • beforeDestroy:可以写一个确认停止事件的确认框。

    3、动态路由定义和获取

    在 router 目录下的 index.js 文件中,对 path 属性加上 /:id。

    使用 router 对象的 params.id 获取

    4、vue-router 有哪几种导航钩子?

    三种

    1. 全局导航钩子(跳转前进行判断拦截)
    • router.beforeEach(to, from, next),
    • router.beforeResolve(to, from, next),
    • router.afterEach(to, from ,next)

    2.组件内钩子

    • beforeRouteEnter
    • beforeRouteUpdate
    • beforeRouteLeave

    3.单独路由独享组件

    • beforeEnter
    5、组件之间的传值通信?

    父组件向子组件传值:

    子组件在props中创建一个属性,用来接收父组件传过来的值;
    在父组件中注册子组件;
    在子组件标签中添加子组件props中创建的属性;
    把需要传给子组件的值赋给该属性

    子组件向父组件传值:

    子组件中需要以某种方式(如点击事件)的方法来触发一个自定义的事件;
    将需要传的值作为$emit的第二个参数,该值将作为实参传给响应事件的方法;
    在父组件中注册子组件并在子组件标签上绑定自定义事件的监听。

    6、vuex

    相关文章

      网友评论

          本文标题:Why can't I change

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