写出一种div水平垂直居中方法
// 使用绝对定位
<div style="width: 500px;height:200px; position: relative; border: green solid 1px;">
<img alt="" src="https://www.baidu.com/img/baidu_jgylogo3.gif" style="width: 120px; height: 40px;position: absolute; left:50%; top: 50%; margin-left: -60px;margin-top: -20px;" />
</div>
// 不知道图片宽高情况下实现
<style type="text/css">
*{margin: 0;padding:0;}
div{
width:150px;
height: 100px;
position: relative;
border:1px solid #000;
}
img {
width: 50px;
height: 50px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
// 设置display:table
<div style="text-align: center; width: 500px;height:200px; display: table;border: green solid 1px;">
<span style="display: table-cell; vertical-align: middle; ">
<img alt="" src="https://www.baidu.com/img/baidu_jgylogo3.gif" style="display: inline-block;" />
</span>
</div>
// flex布局实现
<div class="ui-flex justify-center center" style="border: green solid 1px; width: 500px; height: 200px;">
<div class="cell">
<img alt="" src="https://www.baidu.com/img/baidu_jgylogo3.gif" style="" />
</div>
</div>
// flex布局实现
<style type="text/css">
.ui-flex {
display: -webkit-box !important;
display: -webkit-flex !important;
display: -ms-flexbox !important;
display: flex !important;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap
}
.ui-flex, .ui-flex *, .ui-flex :after, .ui-flex :before {
box-sizing: border-box
}
.ui-flex.justify-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center
}
.ui-flex.center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center
}
</style>
什么是前后端分离,前后端分离的原理是什么?引用
前后端分离就是把数据操作和显示分离出来。前端专注做数据显示,通
过文字,图片或者图标等方式让数据形象直观的显示出来。后端专注做
数据的操作。前端把数据发给后端,有后端对数据进行修改。
前后端分离核心思想是前端HTML页面通过AJAX调用后端的RESTFUL API接口并使用JSON数据进行交互。
什么是响应式布局,响应式布局的原理是什么?
响应式布局就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。
这个概念是为解决移动互联网浏览而诞生的。
响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验。
原理:简单点说响应式布局它是通过CSS中MediaQuery(媒介查询)@media功能,
来判断我们的终端设备宽度在多少像素内,然后就执行与之对应的CSS样式。
如何兼容低版本IE?
html5shiv.js
解决 ie9 以下浏览器对 html5 新增标签不识别的问题。
respond.js
解决 ie9 以下浏览器不支持 CSS3 Media Query 的问题。
手机端页面如何适配?
flexible.js,rem
-webkit
-o
v-model双向绑定数据的原理?
v-model本质上是 :value和v-on的结合体,就是绑定他的value,通过v-on触发,从而更新数据
v-if和v-show的区别?
v-if 标签是否加载
v-show 标签是否显示
v-if和v-for可不可以在同一个标签中使用?
可以 v-for优先级大于v-if
vue的生命周期?
Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载DOM-渲染、更新-渲染、卸载等一系列的过程,我们称这是 Vue 的生命周期。
vue生命周期的作用是什么?
Vue 所有的功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能。 生命周期中有多个事件钩子,在控制整个vue实例的过程时更容易形成好的逻辑。
第一次页面加载会触发哪几个钩子?
beforeCreate , created , beforeMount ,mounted 这几个钩子
简述每个周期具体适合哪些场景?
beforeCreate:创建前,此阶段为实例初始化之后,this指向创建的实例,此时的数据观察事件机制都未形成,不能获得DOM节点。 data,computed,watch,methods 上的方法和数据均不能访问。 可以在这加个loading事件。
created:创建后,此阶段为实例已经创建,完成数据(data、props、computed)的初始化导入依赖项。 可访问 data computed watch methods 上的方法和数据。 初始化完成时的事件写在这里,异步请求也适宜在这里调用(请求不宜过多,避免白屏时间太长)。 可以在这里结束loading事件,还做一些初始化,实现函数自执行。 未挂载DOM,若在此阶段进行DOM操作一定要放在Vue.nextTick()的回调函数中。
beforeMount:挂载前,虽然得不到具体的DOM元素,但vue挂载的根节点已经创建,下面vue对DOM的操作将围绕这个根元素继续进行。 beforeMount这个阶段是过渡性的,一般一个项目只能用到一两次。 mounted:挂载,完成创建vm.$el,和双向绑定 完成挂载DOM和渲染,可在mounted钩子函数中对挂载的DOM进行操作。 可在这发起后端请求,拿回数据,配合路由钩子做一些事情。
beforeUpdate:数据更新前,数据驱动DOM。 在数据更新后虽然没有立即更新数据,但是DOM中的数据会改变,这是vue双向数据绑定的作用。 可在更新前访问现有的DOM,如手动移出添加的事件监听器。
updated:数据更新后,完成虚拟DOM的重新渲染和打补丁。 组件DOM已完成更新,可执行依赖的DOM操作。 注意:不要在此函数中操作数据(修改属性),会陷入死循环。
activated:在使用vue-router时有时需要使用来缓存组件状态,这个时候created钩子就不会被重复调用了。 如果我们的子组件需要在每次加载的时候进行某些操作,可以使用activated钩子触发。
deactivated:组件被移除时使用。
beforeDestroy:销毁前, 可做一些删除提示,如:您确定删除xx吗?
destroyed:销毁后,当前组件已被删除,销毁监听事件,组件、事件、子实例也被销毁。 这时组件已经没有了,无法操作里面的任何东西了。
Bom和Dom?
DOM:文档对象模型,描述了处理网页内容的方法和接口。最根本对象是document(window.document)。
由于DOM的操作对象是文档,所以DOM和浏览器没有直接关系。
部署在服务器上的文件夹、右键查看源代码等。
BOM:浏览器对象模型,描述了与浏览器进行交互的方法和接口。由navigator、history、screen、location、window五个对象组成的,最根本对象是window。
用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。
浏览器的标签页、地址栏、搜索栏、菜单栏、滚动条等。
如何清除浮动?
.clear{
clear:both
}
//父级div定义 overflow:hidden
ajax 原理?
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。
同步和异步?
异步传输是面向字符的传输,它的单位是字符; 而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的。
同步的话,必须这个操作完了才会执行下一步,在等待期间浏览器会挂起不能执行任何接下来的js代码;异步则是【告诉】浏览器去做,【告诉】是一瞬间的事情,然后就继续执行下一步了,等到结果返回来了,浏览器会通知js执行相应的回调。
404?
服务器资源找不到
什么是闭包?
闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
css优先级
优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器
注:新手上路,不定期更新