html面试3
1.页面导入样式时,使用link和@import有什么区别?
- 
link是 xhtml标签,除了加载css外,还可以定义RSS 等其他事务;@import属于CSS范畴,只能加载CSS。 
- 
link引用CSS.时候,页面载入时同时加载;@import需要在页面完全加载以后加载,而且@import被引用的CSS会等到引用它的CSS文件被加载完才加载。 
- 
link是xhtml标签,无兼容问题;@import是在CSs2.1提出来的,低版本的浏览器不支持。 
- 
link支持使用javascript控制去改变样式,而import不支持。 
- 
link方式的样式的权重高于import的权重。 
- 
import在html使用时候需要<style type="text/css">标签。 
2.无样式内容闪烁(FOUC) Flash of Unstyle Content
@import 导入CSS文件会等到文档加载完后再加载CSS样式表。因此,在页面DOM加载完成到CSS 导入完成之间会有—段时间页面上的内容是没有样式的。解决方法:使用link标签加载CSS样式文件。因为link是顺序加载的,这样页面会等到CSS下载完之后再下载 HTML文件,这样先布局好,就不会出现FOUC问题。
3.拖放APl; drag. drop
 /*目标对象上触发的dragove事件*/
    drag.addEventListener('dragover', function (e) {
        e.preventDefault(); //阻止默认动作
    })
    /*源对象释放,目标对象上触发的事件*/
    drag.addEventListener('drop', function (e) {
        ele.classList.remove('draging');
        if (e.target.nodeName === 'LI') {
            e.target.parentNode.insertBefore(ele, e.target); //将源对象元素插入到目标元素前面
        }
    })
4.HTML5的文件离线储存怎么使用,工作原理是什么
在线情况下,浏览器发现HTML头部有manifest属性,它会请求manifest文件,如果是第一次访问,那么浏览器就会根据 manifest文件的内容下载相应的资源,并进行离线存储。如果已经访问过并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面。然后浏览器会对比新的manifest文件与旧的 manifest文件,如果文件没有发生改变,就不会做任何操作;如果文件改变了,那么就会重新下载文件中的资源,并且进行离线存储。例如,在页面头部加入manifest属性
<html manifest='cache.manifest'>
在cache.manifest文件中编写离线存储的资源
CACHE MANIFEST
#v0.11
CACHE:
5.label的作用是什么?是怎么用的?*
label标签用来定义表单控件间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。label中有两个属性是非常有用的,FOR和ACCEsSKEY。FOR属性功能:表示 label标签要绑定的HTML元素,你点击这个标签的时候,所绑定的元素将获取焦点。例如,
<Label FOR="InputBox">姓名</Label> <input lD="InputBox"type= "text">
ACCESSKEY属性功能:表示访问label标签所绑定的元素的热键,当您按下热键所绑定的元素将获取焦点。例如,
<Label FOR="InputBox"ACCESSKEY="N">姓名</Label> <inputID="InputBox" type="text">
6.HTML5的form如何关闭自动完成功能
- 
在E的internet选项菜单中里的自动完成里面设置。 
- 
设置form输入框的autocomplete为 on或者off来来开启输入框的自动完成功能。 
7.如何实现浏览器内多个标签页之间的通信?
- 
WebSocket,SharedWorker。 initWebSocket: function (userId,sessionId) {
 // WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
 this.websock = new WebSocket("ws://127.0.0.1:1997/websocket/"+userId+"/"+sessionId);
 this.websock.onopen = this.websocketonopen;
 this.websock.onerror = this.websocketonerror;
 this.websock.onmessage = this.websocketonmessage;
 this.websock.onclose = this.websocketclose;
 },
 websocketonopen: function () {
 console.log("WebSocket连接成功");
 },
 websocketonerror: function (e) {
 console.log("WebSocket连接发生错误",e);
 },
 websocketonmessage: function (e) {
 console.log("获取到后端传递来的数据",e.data);
 },
 websocketclose: function (e) {
 console.log("WebSocket连接关闭",e);
 }1、initWebSocket 我们调用initWebSocket方法就可以和后端建立连接,userId、sessionId就是我们传递的参数。2、websocketonopen websocket连接成功后,就会调用websocketonopen方法。3、websocketonerror websocket连接失败后,就会调用websocketonerror方法4、websocketonmessage 当接收到后端发送消息的时候,就会调用 websocketonmessage方法,e.data就是传递的消息内容。 5、websocketclose 当websocket连接关闭的时候,就会调用这个websocketclose方法。 8.webSocket如何兼容低浏览器- 
引用WebSocket.js这个文件来兼容低版本浏览器。 
 9.页面可见性(Page Visibility)API可以有哪些用途- 
通过visibility state 的值得检测页面当前是否可见,以及打开网页的时间。 
 10.如何在页面上实现一个圆形的可点击区域- 
border-radius。 
- 
纯js 实现,一个点不在圆上的算法。 
 11.实现不使用border 画出1px高的线,在不同浏览器的Quirks,mode和CSs Compat模式下都能保持同一效果<div style="height:1px;overflow:hidden;background:red" ></div > 12.网页验证码是干嘛的,是为了解决什么安全问题- 
区分用户是计算机还是人的程序。 
- 
可以防止恶意破解密码、刷票,论坛灌水。 
 13.title 与h1的区别、b与strong的区别、i与em的区别- 
title 属性没有明确意义,只表示标题;h1表示层次明确的标题,对页面信息的抓取也有很大的影响。 
- 
strong标明重点内容,语气加强含义;b是无意义的视觉表示em表示强调文本;i是斜体,是无意义的视觉表示。 
- 
视觉样式标签:biu s。 
- 
语义样式标签: 'strong em ins del code。 
 14.简述一下src 与href的区别。- 
src用于替换当前元素,href 用于在当前文档和引用资源之间确立联系。 
- 
src是source 的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。 
- 
href是 Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,如果我们在文档中添加 
 15.HTML元素的显示优先级?- 
帧元素(frame) >HTML元素优先,表单元素总>非表单元素优先。 
- 
常见的非表单元素包括:链接标记(A),DIV标记,SPAN标记,TABLE标记等等。表单元素覆盖样式元素的根本原因在于HTML元素默认的显示优先级规则。所有这样 HTML,元素又可以根据其显示要求分成两类,即有窗口的 HTML元素(Windowed Element),无窗口的HTML元素( Windowless Element)。 
- 
有窗口的元素包括:SELECT完素,OBJECT元素;插件,IE5.01以主更早版本中的IFRAME元素。 
- 
 
- 
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号