左右两块固定宽度200px ,中间自适应2023.2.13

1、html

1.未知宽高元素,如何实现垂直水平居中?

1.第一种是使用绝对定位的方法

​ 通过left,top以及transform属性使元素水平垂直居中,其中translate属性取值为负数时表示向左和向下移动

2.第二种方法是把元素的父盒子设置为弹性盒子

​ 通过设置父盒子为弹性盒子,并设置子元素在主轴上居中对齐(justify-content: center;),再设置子元素在主轴和侧轴上居中对齐(align-items: center;)

3.第三种是把父盒子设置为表格元素

​ 通过设置text-align: center;和vertical-align: middle;将子元素水平垂直居中,要注意的是需要把子元素设置成行内块元素,因为行内元素不能设置宽高

4.还有一种方法是将父盒子设置为网格元素(dispaly:grid)

答案

2.css:左中右布局占满屏幕,左右两块固定宽度200px ,中间自适应,先加载中间块

分析:

1.中间自适应

弹性布局display:flex

flex-grow增长系数,左右默认为0,中间设置为1即可分配所有剩余空间(分配给左右固定宽度之后的空间)

2:先加载中间

css选择器优先级问题

(1)越精确优先级越高

id选择器>类选择器>元素选择器(伪类、伪元素等暂不讨论)

(2)css文件里越后面优先级越高(相同类型)

用于先加载中间块(单纯满足需求:先加载中间块,和自适应没有关系)

代码:

html

<!DOCTYPE html>
<html>
    <head>
        <title>左中右布局</title>
        <link rel="stylesheet" href="左中右布局.css"/>
    </head>
    <body>
        <div class="flex-container">
            <div class="container-left">
                左边宽度固定200px
            </div>
            <div class="container-center">
                中间自适应
            </div>
            <div class="container-right">
                右边宽度固定200px
            </div>
        </div>
    </body>
</html>

css

*{
    margin: 0;
    padding: 0;
}
 
.flex-container{
    width: 100%;
    height: 1000px;
    display: flex;
    text-align: center;
    line-height: 1000px;
}
 
.container-right{
    width: 200px;
    background-color: blue;
}
 
.container-left{
    width: 200px;
    background-color: red;
}
 
.container-center{
    flex-grow: 1;
    background-color: yellow;
}

答案

3.怎么解决外边距塌陷问题?

让元素形成BFC的布局就可以解决外边距塌陷
BFC全称是box-formatting-context (块级格式化上下文) 它是一个独立的渲染区域规定了内部block-level的盒子如何渲染并且不影响外部元素。
BFC的规则或者说是特点
1.独立且隔离的一个区域
2.里面的盒子垂直排列
3.属于同一个BFC相邻的俩个盒子(父子关系 相邻的兄弟关系)会有内边距重叠
4.BFC的区域不会与float重叠;
5.计算BFC的高度时,浮动元素也参与计算。
创建BFC(解决方案):
1、border-top:1px solid;(这个解决方法最好,但它其实并不是BFC,相当于加了一堵墙不让margin-top冲出去。下面的 2-6 都是BFC,虽然可以解决问题,但有一些副作用,很有可能会影响原来元素的功能,比如父元素本来不应该浮动,虽然你设置浮动之后解决margin塌陷但是使得元素本来的正常功能受到影响)
2、浮动元素(元素的 float 不是 none)
3、绝对定位元素(元素的 position 为 absolute 或 fixed)
4、行内块元素
5、overflow 值不为 visible 的块元素
6、弹性元素(display为 flex 或 inline-flex元素的直接子元素)

答案

4.怎么理解语义化?

语义化就是构成HTML结构的标签要有意义,比如有这样的标签:head表示页面头部,main表示页面主题,footer表示页面底部。那么这些标签构成的HTML结构就是有意义的,也是语义化的。如果说页面的头部、主体以及底部都用div来表示,那么他就不是一个语义化的HTML结构了。

6、Html5 有哪些新特性、移除了哪些元素?
新增元素:

绘画canvas

用于媒介回放的video 和 audio 元素

本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失

sessionStorage 的数据在浏览器关闭后自动删除

cookie : 只在设置的cookie过期时间之前有效,即使窗口或者浏览器关闭也有效。

语义化更好的内容元素,比如 article 、footer、header、nav、section

表单控件 ,calendar 、 date 、 time 、 email 、 url 、 search

新的技术 webworker 、 websocket 、 Geolocation

移除的元素:

纯表现的元素:basefont 、 big 、 center 、 font 、 s 、 strike 、 tt 、 u

对可用性产生负面影响的元素:frame 、 frameset 、 noframes
答案

2.CSS

CSS3新特性:
1、颜色:新增RGBA,HSLA模式
2、文字阴影(text-shadow)
3、边框: 圆角(border-radius)边框阴影: box-shadow
4、盒子模型:box-sizing
5、背景:background-size 设置背景图片的尺寸
background-origin 设置背景图片的原点
background-clip 设置背景图片的裁切区域,以”,”分隔可以设置多背景,用于自适应布局
6、渐变:linear-gradient、radial-gradient
7、过渡:transition,可实现动画
8、自定义动画
9、在CSS3中唯一引入的伪元素 :selection.
10、媒体查询,多栏布局
11、border-image
12、2D转换:transform:translate(x,y) rotate(x,y) skew(x,y) scale(x,y)
13、3D转换
14、新增选择器:属性选择器、伪类选择器、伪元素选择器。

答案

3.js

1.闭包是什么?或者说如何会产生闭包?闭包的利弊?

闭包是指有权访问另外一个函数作用域中的局部变量的函数。声明在一个函数中的函数,叫做闭包函数

闭包的利:

1.保护函数内变量安全,实现封装,避免变量流入其他环境造成命名冲突。

2.在内存中维持一个变量,可以做缓存。

3.匿名自执行函数可以减少内存消耗。

闭包的弊:

容易内存泄漏

由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。

2.作用域是什么?或者说一下你对全局执行上下文和函数执行上下文的理解

在全局执行上下文中,this 的值指向全局对象(在浏览器中,this引用 Window 对象)。
如果是在函数执行上下文中,this的值取决于该函数是如何被调用的。如果它被一个引用对象调用,那么 this 会被设置成那个对象,否则 this 的值被设置为全局对象或者 undefined(在严格模式下),除此之外,我们还可以使用call、apply和bind指定this。
答案

3.js数据类型有哪些

基本数据类型:null,undefined,Bigint,Boolean,string,number,symbol
引用数据类型:object

NaN是一个数值类型,但不是一个具体的数字

4.null和undefined的区别

具体区别:JavaScript的最初版本是这样区分的:null是一个表示“无”的对象(空对象指针),转为数值时为0;
		undefined是一个表示“无”的原始值,转为数值时为NaN

5.原型链是什么

1.原型可以解决什么问题
	对象共享属性和共享方法
2.谁有原型
函数拥有:prototype
对象拥有:__proto__
3.对象查找属性或者方法的顺序
	先在对象本身查找-->构造函数中查找--->对象的原型--->构造函数的原型中--->当前原型
4.原型链
	4.1是什么?:就是把原型串联起来
	4.2原型链的最顶端是null

6.实现继承的方法有哪些?

1.extends

2.原型链:new

3.call(this)

4.组合式继承:call+new

7.ES6新特性有哪些?

es6:let const 三点运算符 箭头函数 解构赋值

8.var、let、const区别

var、let、const共同点是可以声明变量

区别一:
var具有变量提升的机制
let和const没有变量提升的机制

9.promise有几种状态

有3种状态

pending(进行中)
fulfilled(已成功)
rejected(失败)

4.vue

1.key做唯一标识

循环当中加key作为标识是为了解决产生等数据有变动,而不会造成显示异常(混乱)的场景,而且使用key也能提升效率

2.Vue双向绑定原理

vue中数据是在data中定义的,但是可以通过this.xx打印出来,而且this.xx修改了data中的数据也会修改,就证明了data也是双向绑定的数据。
vue流程是这样的:通过compile去编译解析模版中的数据从而更新视图层,例如使用了v-model这样的指令,他的修改流程是这样的:要通过observer去劫持数据(this.xxx)发生的变化,如果改变了就去通知订阅者。从而再去执行update方法来更新视图层,从而实现数据双向绑定。

3.v-if和v-show区别

v-if是创建和删除

v-show是显示和隐藏

如果一进入页面不显示的情况下:使用v-show不如v-if,但是频繁切换显示和隐藏状态v-show性能比v-if频繁创建删除好的多

4.computed和watch的区别?原理是什么

俩中在不同场景下使用的方式:比如一个数据会在俩处调用展示,一定会用computed来提升性能,如果就一处无所谓。
watch     可以监听路由变化、也可以监听数据,如果数据不发生改变,watch不会执行的。

5.Vuex是响应式,Vuex是单向数据流还是双向

vuex是单向数据流,表单是双向数据绑定,所以有表单的地方就不要使用vuex

Vuex

1mutations和actions有什么区别

回答:
mutations必须是同步函数,在 mutation 中混合异步调用会导致你的程序很难调试
Action 提交的是 mutation,而不是直接变更状态。
Action 可以包含任意异步操作。

面试题:v-if和v-for优先级

v-for的优先级要比v-if高

面试题:ref是什么

来获取dom的

面试题:next Tick是什么

获取更新后的dom内容

当dom都更新(都执行完毕)了再执行nextTick函数回调

面试题:scoped原理

1.作用:让样式在本组件中生效,不影响其它组件
2.原理:给节点新增自定义属性,然后css根据属性选择器添加样式

面试题:路由导航守

样式穿透

>>>
/deep/
::v-deep  【通用】

场景:引入组件或者插件,要修改css,但是style scoped,这时候要穿透了

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值