Html&&Css
1.Web标准的理解
结构、表现、行为分离使页面易于维护,页面响应速度快,设备兼容更好,容易提高搜索引擎的解析优化
2.浏览器内核差异
是渲染网页内容的,将网页的代码转换为看得见的页面,使用排版所以会导致各个浏览器间的排版存在错误或误差(两方面原因:网站本身编写不规范,浏览器本身的不规范)
3.兼容性
-
html对象获取问题:
FireFox:document.getElementById("idName");
ie:document.idname
或者document.getElementById("idName")
解决办法:统一使用document.getElementById("idName")
-
const问题:
说明:Firefox下,可以使用const
关键字或var
关键字来定义常量;
IE下,只能使用var
关键字来定义常量.
解决方法:统一使用var
关键字来定义常量. -
frame问题:
<frame src="xxx.html" id="frameId" name="frameName" />
访问frame对象:在IE和Firefox中都可以使用window.document.getElementById("frameId")
来访问这个frame对象.
切换frame内容:在 IE和Firefox中都可以使用window.document.getElementById("testFrame").src = "xxx.html"
或window.frameName.location = "xxx.html"
来切换frame的内容. -
模态和非模态窗口问题:
IE下,可以通过showModalDialog
和showModelessDialog
打开模态和非模态窗口;Firefox下则不能.
解决方法:直接使用window.open(pageURL,name,parameters)
方式打开新窗口。
如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener
来访问父窗口.
例如:var parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";
-
firefox与IE的父元素(parentElement)的区别:
IE:obj.parentElement
firefox:obj.parentNode
解决方法: 因为firefox与IE都支持DOM,因此使用obj.parentNode
是不错选择. -
document.formName.item(”itemName”)
问题:
IE下,可以使用document.formName.item(”itemName”)
或document.formName.elements["elementName"];
Firefox 下,只能使用document.formName.elements["elementName"]
解决方法:统一使用document.formName.elements["elementName"]
-
input.type
属性问题
IE下input.type
属性为只读;但是Firefox下input.type
属性为读写。
解决办法:不修改input.type属性。如果必须要修改,可以先隐藏原来的input,然后在同样的位置再插入一个新的input元素。 -
事件委托方法
IE下,使用document.body.onload= inject;
其中functioninject()在这之前已被实现;在Firefox下,使用document.body.onload= inject();
- 各种的样式兼容
4.vue相关
-
vue组件间传值:
父子组件传值:props
子父传值:$emit
多组件:EventBus 事件总线 -
生命周期:
创建:
beforeCreate
在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
created
实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见
挂载:
beforeMount
在挂载开始之前被调用:相关的 render 函数首次被调用。
mounted
el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
DOM渲染在mounted阶段已经完成。
更新:
beforeUpdate
数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
updated
由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
该钩子在服务器端渲染期间不被调用
销毁:
beforeDestroy
实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed
Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。
ajax请求是在monted生命周期中完成的