资源描述
1, html和xml有什么区分
html是超文本标识语言 xml是可扩展标识语言
html语法宽松,xml语法严谨
html使用固有标识,xml没有固有标识
html标签预定义,xml标签可扩展,可定义
html是用来显示数据的,xml是用来描述和存储数据的
2, css有哪几个选择器?权重的优先级?
第一个为 属性选择器
第二种为 id选择器
第三种为 class选择器
第四种为 伪类选择器
第五种是 后裔选择器
第六种是 标签选择器
第七种是 通用选择器
第八种是 伪元素选择器
1. 第一等:代表内联样式,如: style=””,权值为1000。
2. 第二等:代表ID选择器,如:#content,权值为0100。
3. 第三等:代表类,伪类和属性选择器,如.content,权值为0010。
4. 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
5. 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
6. 继承的样式没有权值。
3, 网页有哪几部分组成?
结构层:html
表示层:css
行为层:js和dom
4, 一个200*200的div在不一样辨别率屏幕上下左右居中,用css实现
Div{
position: absolute;
width: 200px;
height: 200px;
top: 50%;
left: 50%;
margin-top: -100px;
margin-left: -100px;
}
5, 论述清楚浮动的几个方式
第一个 父级div定义高度height 适合高度固定的布局
第二种 父级div定义 overflow:hidden
第三种 结尾处加空标签 clear: both 让父级自动获取高度
第四种 父级div定义 伪类:after 和 zoom
6, 解释css sprites,怎样使用?
CSS Sprites其实就是把网页中某些背景图片整合到一张图片文献中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position能够用数字能精准的定位出背景图片的位置。
CSS Sprites为某些大型的网站节约了带宽,让提升了用户的加载速度和用户体验,不需要加载更多的图片
7, 怎样用原生js给一个按钮绑定两个onclick事件?
Var btn1 =document. getElementsById(“btn”);
btn1.addEnventListener(“click”,”hello1);
btn1.addEnventListener(“click”,”hello2);
function hello1(){
alert(“hello1”);
}
function hello2(){
alert(“hello2”);
}
8, 拖曳会用到哪些事件?
Dragstart
Dragenter
Dragover
Dragleave
Drag
Drop
Dragend
9, 请列举jQuery中选择器?
1, 基本选择器
ID,class,元素之类的
2, 层级选择器
返回的是jQuery对象才能够进行的链式操作
如 后裔元素,子元素,弟兄元素,相邻元素
3, 过滤选择器
基本过滤, 内容过滤, 可见性过滤, 属性过滤, 子元素过滤和表单对象属性过滤选择器
10,JavaScript中有哪些定期器,他们的区分和使用方法是什么?
SetTimeout 只会执行一次
SetInterval 会一直重复执行
方式都为:settimeout(函数,时间)
11,请描述一下cookies sessionstorage 和localstorage区分
相同点:都储存在客户端上
不一样点:1 储存大小
Cookies 数据大小不能超出4k
Sessionstorage和Localstorage 比cookies大 ,能够达成5m或更多
2有效时间
Localstorage 储存持久数据,浏览器关闭后也不会丢失,除非积极删除数据
Sessionstorage 数据在关闭游览器之后自动删除
Cookies 设置的cookies过期时间之前一直有效,虽然窗口和游览器关闭。
3数据与服务器之间的交互方式
Cookies的数据会自动的传递到服务器,服务器端也能够写cookies到客户端
Sessionstorage和localstorage 不会上传到服务器,仅在本地保存
12,计算一个数组arr所有元素的和
//能够通过 document.getelmentbyid().value;来获取输入框中的值
function sum2(){
var arr1=[1,2,3,4,5,6,7,8,9];
var sum1=0;
for (var i=0;i<=arr1.length;i++) {
if (typeof arr1[i]=="number") {
sum1+=arr1[i];
}
}
document.write(sum1);
}
13,编写一个措施去掉数组里的重复内容 var arr=[1,2,3,4,5,1,2,3]
function arr1(){
var arr2 = [1,2,3,4,5,1,2,3];
var s= [];
for(i= 0;i<arr2.length;i++){
if(s.indexOf(arr2[i]) == -1){
s.push(arr2[i]);
}
}
console.log(s);
}
14,document.write和innerHTML的区分是什么?
Document.write是直接写入到页面的内容流,假如之前没有调用document.Open。那么浏览器会自动调用open,页面被重写
innerHTML将内容写入某个DOM节点,不会导致页面所有重绘。精准。
15,ajax的步骤
Ajax 异步JavaScript和xml 能够局部刷新网页数据而不是重新加载整个网页
第一步,创建xmlhttprequest对象,var xmlhttp = new XmlHTTPrequest();
Xmlhttprequest对象用来和服务器互换数据
Var xhttp;
If(windows.XMLHttpRequest){
//目前主流浏览器
Xhttp = new XMLHttpRequst();
}else{
Xhttp =new ActiveXObject(“Mirosoft.XMLHTTP”);
}
第二步,xmlHTTPrequest对象的open()和send()措施发送资源祈求到服务器,
第三步,使用xmlhttprequest对象的responseText或responseXML属性取得服务器的响应
第四部,onreadystatechange函数,当发送祈求到服务器,我们想要服务器响应执行某些功效就需要使用使用onreadystatechange函数,每次xmlhttprequest对象的readystate发生变化都会触发onreadystatechange函数。
16,xml和json的区分,请用四点来形容
Json相对于xml来讲,数据体积小,传输速度快
Json与JavaScript愈加好交互,愈加好的数据交互
Xml对数据描述性比很好
Json的解析速度要远远快于XML
17,box-sizing常用的属性有哪些?有哪些作用?
属性值
· box-sizing:content-box
· box-sizing:border-box
· box-sizing:inherit
content-box
· 这是box-sizing的默认属性值
· 是CSS2.1中要求的宽度高度的显示行为
· 在CSS中定义的宽度和高度就对应到元素的内容框
· 在CSS中定义的宽度和高度之外绘制元素的内边距和边框
border-box
· 在CSS中微元素设定的宽度和高度就决定了元素的边框盒
· 即为元素在设置内边距和边框是在已经设定好的宽度和高度之内进行绘制
· CSS中设定的宽度和高度减去边框和内间距才能得到元素内容所占的实际宽度和高度
(Q1)box-sizing: content-box|border-box|inherit;
(Q2)content-box:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。
border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
18,使一个300*200的div实现屏幕水平居中
前面已经有一个措施了
第二种措施:
div{
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
margin: auto;
position: absolute;
height: 200px;
width: 300px;
}
第三种措施是利用jQuery
$(window).resize(function(){
$(".myblock").css({
position: "absolute",
left: ($(window).width() - $(".myblock").outerWidth())/2,
top: ($(window).height() - $(".myblock").outerHeight())/2 });
});
另外在页面载入时,就需要调用resize()措施
$(function(){
$(window).resize();
});
19,三个盒子,左右定宽,中间自适应的措施有几个?
第一个措施:左右采取浮动 中间采取margin-left和margin-right的措施
代码:
<div style="width: 100%;margin: 0 auto;">
<div style="width: 200px;float: right;background-color: #000000;">11</div>
<div style="width: 200px; float: left;background-color: red;">33</div>
<div style="margin-left: 200px;margin-right: 200px;background-color: green;">22</div>
</div>
第二种措施:左右采取绝对定位,中间采取margin-left和margin-right
代码:<div style="width: 100%;margin: 0 auto;">
<div style="width: 200px;position: absolute;left: 0px;background-color: #000000;">11</div>
<div style="width: 200px; position: absolute;right: 0px;background-color: red;">33</div>
<div style="margin-left: 200px;margin-right: 200px;background-color: green;">22</div>
</div>
第三种措施 负margin值
<div id="main">
<div id="mainContainer">main content</div></div><div id="left">
<div id="leftContainer" class="inner">left content</div></div><div id="right">
<div id="rightContainer" class="inner">right</div></div>
#main {
float: left;
width: 100%;
}
#mainContainer {
margin: 0 230px;
height: 200px;
background: green;
}
#left {
float: left;
margin-left: -100%;
width: 230px}
#right {
float: left;
margin-left: -230px;
width: 230px;
}
#left .inner,
#right .inner {
background: orange;
margin: 0 10px;
height: 200px;
}
20,js有几个数据类型?其中基本数据类型有哪些?
基本数据类型有 Boolean,undefined,null,number,string
应用类型有 object,array,function
21,undefined和null的区分
Null 代表空值,代表一个空对象指针,一个特殊的对象值
Undefined 是未定义,类型也是undefined
22,http和https有什么区分?怎样灵活利用?
Http是http运行在TCP之上,传输内容是明文,客户端和服务器无法验证对方身份。
HTTPS是http运行在SSL/tls之上,SSL/tls运行在TCP上,所有内容都是通过加密。加密采取对称加密,不过秘钥用服务器证书进行非对称加密。服务器和客户端都是能够相互验证身份。
23,常见的Http状态码
2开头,祈求成功,表示成功处理了祈求的状态代码
3开头,祈求重定向,表示完成祈求,需要深入操作,一般是重定向
4开头,祈求错误,表示祈求犯错,妨碍了服务器的处理
5开头,这些状态码表示服务器在尝试处理祈求时发生内部错误,服务器自身犯错而不是祈求犯错
24,怎样进行网站性能的优化
原因:用户角度 加载速度提升,愈加好的交互体验
服务商角度 减少页面祈求,减少带宽,节约资源
措施:1,JavaScript优化和打包
2,按需加载资源
3,在使用DOM操作库时用上array-ids
4,缓存
5,启用HTTP/2
6,应用性能分析
7,使用负载均衡方案
8,同构
9,使用索引加快数据库查询
10,使用更快的转译方案
11,防止因JavaScript和css的使用而阻塞渲染
12,图片编码优化
25,react和vue有哪些不一样,说说你对这两个框架的见解
相同点:都支持服务器渲染
都有virtual DOM,组件化开发,通过props参数进行父子组件数据的传递,都实现了webComponent规范
数据驱动视图
都支持native方案,react的react native 和vue的weex
不一样点:react严格上只针对MVC的view层,vue则是mvvm模式
Virtual DOM不一样样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树,而对于react来说,每次应用状态被变化,所有组件都会被重新渲染,因此react需要shouldComponentUPdate这个生命周期函数来进行控制。
组件的写法不一样样。。。
数据绑定,vue是双向的,react是单向的
State对象在react应用中不可变的,需要使用setstate措施更新状态,在vue中state对象对象不是必须的,数据由data属性在vue对象中管理
26,什么是mvvm mvc 有什么区分,原理?
1,MVC(model-view-controller)
MVC是比较直观的架构模式,用户模式->view(负责接收用户的操作输入)->controller(业务逻辑处理)->view(将成果反馈给view)
2,MVVM(model-view-viewmodel)
将”数据模型数据双向绑定”的思想作为核心,因此model和view没有什么关系,之后痛过viewmodel进行交互,而model和viewmodel之间的交互是双向的,因此数据的视图的变化会同时修改数据源,而数据源的数据变化也会立即反应view。
27,px和em的区分
Px表示像素,是一个绝对单位,不会因为其他元素而变化
Em表示相对于父元素的字体大小,em是相对单位,会受到其他元素的影响
28,优雅降级和渐进增强
渐进增强(向上兼容):一开始就针对低版本浏览器进行构筑界面,完成基本功效,然后在针对高级浏览器进行效果,交互,追加功效达成愈加好的体验
优雅降级(向下兼容):一开始就构建站点的完整功效,然后针对浏览器测试和修复。
29,eval()的作用
把字符串参数解析成JS代码并运行,并返回执行的成果;
例如:eval(“2+3”);//执行加运算并返回执行的成果。
Eval(“var age=10”);//申明一个变量age
Eval()的作用域
Function(){
Eval(“var x=1”);//等效于var x=1;
Console.log(x);//输出1
}
a();
console.log(x);//错误,没有定义x
30,js哪些操作会泄露内存
1, 意外的全局变量引起的内存泄漏
2, 闭包引起的
3, 没有清理DOM元素的应用
4, 被遗忘的定期器或者回调
5, 子元素存在引起的
31,浏览器缓存有哪些?一般的缓存有哪几个?
1, HTTP缓存
2, Websql
3, Cookies
4, Localstorage
5, Sessionstorage
6, Flash缓存
32,bootstrap响应式原理
百分比布局+媒体查询
33,有关js事件冒泡与js时间代理(事件委托)
1, 事件冒泡:
当一个子元素被触发时(如onclick),该事件会从事件源(被触发的子元素)开始逐层向上传输,出发父级元素的点击事件。
2, 事件委托:
将子元素的事件通过冒泡的形式交由父元素来执行
例如:
1. var ul = document.getElementById('parentUl');
2. ul.onclick=function (event) {
3. var e = event||window.event,
4. source = e.target || e.srcElement;//target表示在事件冒泡中触发事件的源元素,在IE中是srcElement
5. if(source.nodeName.toLowerCase() == "li"){ //判断只有li触发的才会输出内容
6. alert(source.innerHTML);
7. }
8. stopPropagation(e); //制止继续冒泡
9. };
10. function addElement() {
11. var li = document.createElement('li');
12. li.innerHTML="我是新孩子";
13. ul.appendChild(li);
14. }
34,css样式覆盖规则
规则一:因为继承而发生样式冲突时,最近祖先获胜(就近标准);
规则二:继承样式和直接指定的样式冲突时,直接指定的样式获胜
规则三:直接指定样式发生冲突时,样式权值高的获胜;
规则四:样式权值相等时,后者获胜。
规则五:!important的样式不被覆盖。
35,请简明描述margin重叠问题以及处理方式
1,同向margin重叠
这时候重叠之后的margin值由发生重叠两片的最大值决定;假如其中一个出现负值,则由最大的正边距减去绝对值最大的负边距,假如没有最大正边距,则由0减去绝对值最大的负边距。
处理措施:
(1) 在最外层的div中加入overflow:hidden;zoom:1;(zoom这个属性是ie专有属性,除了设置或者检索对象的缩放百分比之外,它尚有能够触发ie的haslayout属性,清除浮动,清除margin重叠等作用。)
(2) 在最外层加入padding:1px;
(3) 在最外层加入:border:1px solid #000000;
2,异向重叠问题:
Float:left(ie6专属,或处理ie8+等浏览器的同向重叠问题)
36,position的值,relative\absolute\fixed分别相对于进行谁定位?
Absolute:绝对定位 相对于最近一级
Fixed:绝对定位 相对于浏览器窗口或frame进行定位
Relative:相对定位 相对于其在一般流的位置
Static:默认值 没有定位
Sticky:粘性定位 文档位置依照正常文档流计算得出
37,什么是闭包,怎样使用,为何使用?
闭包就是在函数内定义一个函数。
优点:能够读取函数内部的变量 这些变量的值一直保存在内存中
缺陷:内存消耗大且轻易导致内存泄漏 闭包会在父函数外部,变化父函数内部变量的值
38,请解释一下jsonp的工作原理,以及它为何不是真正的ajax。
Jsonp是一个简单的跨域方式;HTML中的script标签能够加载并执行其他域的javascript,于是我们能够通过script标识来动态加载其他域的资源
JSONP易于实现,不过也会存在某些安全隐患,假如第三方的脚本随意地执行,那么它就能够篡改页面内容,截获敏感数据。不过在受信任的双方传递数据,JSONP是非常适宜的选择。
AJAX是不跨域的,而JSONP是一个是跨域的,尚有就是二者接收参数形式不一样样
39,请解释一下JavaScript的同源政策。
同源政策要求跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和措施。当两个域具备相同的协议,相同的端口,相同的host,那么我们就能够以为是相同的域。
40,怎样添加,移除,移动,复制,创建和查找节点?
1, 创建新节点
Createdocumentfragment() //创建一个DOM片段
CreateElement() //创建一个详细的元素
CreateTextNode() //创建一个文本节点
2, 添加,移除,替代,插入
Appendchild()//添加
Removechild() //移除
Replacechild() //替代
InsertBefore() //插入
3, 查找
GetelementsBytagname()//通过标署名
Getelementsbyname()//通过元素的name属性的值
GetelementbyId()//通过元素id,唯一性
41,垃圾回收机制方式及内存管理
垃圾回收机制
1, 定义和使用方法:垃圾回收机制,执行环境负责管理代码执行过程中使用的内存。
2, 原理:垃圾回收机制会定期找出那些不再使用的变量,然后释放其内存。不过这个过程不是实时的,开销较大,因此会按固定期间间隔周期性的执行。
3, 实例如下:
function fn1() {
var obj = {name: 'hanzichi', age: 10};
}
function fn2() {
var obj = {name:'hanzichi', age: 10};
return obj;
}var a = fn1();var b = fn2();
fn1中定义的obj为局部变量,而当调用结束后,出了fn1的环境,那么该块内存会被js引擎中的垃圾回收器自动释放;在fn2被调用的过程中,返回的对象被全局变量b所指向,因此该块内存并不会被释放。
4, 标识回收方略:标识清除和引用计数。
42,jQuery的事件委托措施blind,live,delegate,on之间有什么区分?
(1),blind
定义和使用方法:重要用于给选择到的元素上绑定特定事件类型的监听函数;
语法:bind(type,[data],function(eventObject));
特点:
(1)、适合用于页面元素静态绑定。只能给调用它的时候已经存在的元素绑定事件,不能给将来新增的元素绑定事件。
(2)、当页面加载完的时候,你才能够进行bind(),因此也许产生效率问题。
实例如下:$( "#members li a" ).bind( "click", function( e ) {} );
(2),live
定义和使用方法:重要用于给选择到的元素上绑定特定事件类型的监听函数;
语法:live(type, [data], fn);
特点:
(1)、live措施并没有将监听器绑定到自己(this)身上,而是绑定到了this.context上了。
(2)、live正是利用了事件委托机制来完成事件的监听处理,把节点的处理委托给了document,新添加的元素无须再绑定一次监听器。
(3)、使用live()措施但却只能放在直接选择的元素背面,不能在层级比较深,连缀的DOM遍历措施背面使用,即$(“ul”").live...能够,但$("body").find("ul").live...不行;
实例如下:$( document ).on( "click", "#members li a", function( e ) {} );
(3),delegate
定义和使用方法:将监听事件绑定在就近的父级元素上
语法:delegate(selector,type,[data],fn)
特点:
(1)、选择就近的父级元素,因为事件能够更快的冒泡上去,能够在第一时间进行处理。
(2)、更精准的小范围使用事件代理,性能优于.live()。能够用在动态添加的元素上。
实例如下:
$("#info_table").delegate("td","click",function(){/*显示更多信息*/});
$("table").find("#info").delegate("td","click",function(){/*显示更多信息*/});
(4),on
定义和使用方法:将监听事件绑定到指定元素上。
语法:on(type,[selector],[data],fn)
实例如下:$("#info_table").on("click","td",function(){/*显示更多信息*/});参数的位置写法与delegate不一样样。
阐明:on措施是目前JQuery推荐使用的事件绑定措施,附加只运行一次就删除函数的措施是one()。
总结:.bind(), .live(), .delegate(), .on()分别对应的相反事件为:.unbind(),.die(), .undelegate(),.off()
43,浏览器的内核分别是什么?
IE:trident内核
Firefox:gecko内核
Safari:webkit内核
Opera:目前blink内核
Chrome:blink内核
44,浏览器是怎样渲染画面的?
渲染的流程如下:
1, 解析HTML文献,创建dom树
自上而下,遇到任何样式和脚本都会阻塞
2, 解析css。优先级:浏览器默认设置<用户设置<外部样式<内联样式<HTML中的style样式;
3, 将css和DOM合并,构建渲染树
4, 布局和绘制,重绘和重排
45,css3新增了诸多属性,一起分析一下新增的属性:
1.CSS3边框:
· border-radius:CSS3圆角边框。在 CSS2 中添加圆角矩形需要技巧,我们必须为每个圆角使用不一样的图片,在 CSS3 中,创建圆角是非常轻易的,在 CSS3 中,border-radius 属性用于创建圆角。border:2px solid;
· box-shadow:CSS3边框阴影。在 CSS3 中,box-shadow 用于向方框添加阴影。box-shadow:10px 10px 5px #888888;
· border-image:CSS3边框图片。通过 CSS3 的 border-image 属性,您能够使用图片来创建边框。border-image:url(border.png) 30 30 round;
2.CSS3背景:
· background-size: 属性要求背景图片的尺寸。在 CSS3 之前,背景图片的尺寸是由图片的实际尺寸决定的。在 CSS3 中,能够要求背景图片的尺寸,这就允许我们在不一样的环境中重复使用背景图片。您能够以像素或百分比要求尺寸。假如以百分比要求尺寸,那么尺寸相对于父元素的宽度和高度。
· background-origin :属性要求背景图片的定位区域。背景图片能够放置于 content-box、padding-box 或 border-box 区域。
3.CSS3文字效果:
· text-shadow:在 CSS3 中,text-shadow 可向文本应用阴影。text-shadow:5px 5px 5px #FFFFFF;
· word-wrap :单词太长的话就也许无法超出某个区域,允许对长单词进行拆分,并换行到下一行:p{word-wrap:break-word;}
4.CSS3 2D转换:
transform:通过 CSS3 转换,我们能够对元素进行移动、缩放、转动、拉长或拉伸。
· translate():元素从其目前位置移动,依照给定的 left(x 坐标) 和 top(y 坐标) 位置参数:transform:translate(50px,100px);值 translate(50px,100px) 把元素从左侧移动 50 像素,从顶端移动 100 像素。
· rotate():元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。transform:rotate(30deg);值 rotate(30deg) 把元素顺时针旋转 30 度。
· scale():元素的尺寸会增加或减少,依照给定的宽度(X 轴)和高度(Y 轴)参数:transform:scale(2,4);值 scale(2,4) 把宽度转换为原始尺寸的 2 倍,把高度转换为原始高x() 5.CSS3 3D转换:
· rotateX():元素围绕其 X 轴以给定的度数进行旋转。transform:rotateX(120deg);
· rotateY():元素围绕其 Y 轴以给定的度数进行旋转。transform:rotateY(120deg);
6.CSS3 过渡:当元素从一个样式变换为另一个样式时为元素添加效果。
7.CSS3动画:通过 CSS3,我们能够创建动画,这能够在许多网页中取代动画图片、Flash 动画以及 JavaScript。
8.CSS3多列:
· column-count:属性要求元素应当被分隔的列数。
· column-gap:属性要求列之间的间隔。
· column-rule :属性设置列之间的宽度、样式和颜色规则。
9.CSS3用户界面:
· resize:属性要求是否可由用户调整元素尺寸。
· box-sizing:属性允许您以确切的方式定义适应某个区域的详细内容。
· outline-offset :属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。
46,从输入url到显示页面,都经历了什么?
1、首先,在浏览器地址栏中输入url
2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,假如缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
3、在发送http祈求前,需要域名解析(DNS解析)(DNS(域名系统,Domain Name System)是互联网的一项核心服务,它作为能够将域名和IP地址相互映射的一个分布式数据库,能够使人更以便的访问互联网,而不用去记住IP地址。),解析获取对应的IP地址。
4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。(TCP即传输控制协议。TCP连接是互联网连接协议集的一个。)
5、握手成功后,浏览器向服务器发送http祈求,祈求数据包。
6、服务器处理收到的祈求,将数据返回至浏览器
7、浏览器收到HTTP响应
8、读取页面内容,浏览器渲染,解析html源码
9、生成Dom树、解析css样式、js交互
10、客户端和服务器交互
11、ajax查询
47,对<meta>标签有什么了解?
Meta标签提供有关html文档的元数据。它不会显示在页面上,不过对于机器是可读的。可用于浏览器,搜索引擎,或其他web服务。
作用:
Meta里的数据是供机器解读的,告诉机器怎样解析这个页面,尚有一个用途是能够添加服务器发送到浏览器的http头部内容。
48,h5新特性,
(1)新的语义标签和属性
(2)表单新特性
(3)视频和音频
(4)Canvas绘图
(5)SVG绘图
(6)地理定位
(7)拖放API
49,display:none 和 visibility:hidden的区分
1.display:none是彻底消失,不在文档流中占位,浏览器也不会解析该元素;visibility:hidden是视觉上消失了,能够了解为透明度为0的效果,在文档流中占位,浏览器会解析该元素;
2.使用visibility:hidden比display:none性能上要好,display:none切换显示时visibility,页面产生回流(当页面中的一部分元素需
展开阅读全文