面试题
一、html全局属性
1、accesskey属性
accesskey属性规定激活元素的快捷键。accesskey="accesskey",使用ALT+accesskey(shinft+alt+accesskey)来访问带有指定快捷键的元素。
<a href="http://www.baidu.com" accesskey="h">百度</a><br> <a herf="https://www.sogou.com" accesskey="c">搜狗</a>
按住快捷键alt+h可以打开百度网页,同样,按住快捷键alt+c可以打开搜狗网页。
2、id、class属性分别是为元素命名唯一id和类名。
3、tabindex属性
tabindex属性规定tab键控制次序(tab键用于导航时),当按tab键时,元素聚焦的次序。tabindex="number","number"代表聚焦的次序。
<a href="http://www.baidu.com" tabindex="2">百度</a><br> <a href="https://www.sogou.com" tabindex="1">搜狗</a><br> <a href="http://www.sina.com.cn" tabindex="3">新浪</a><br><strong> </strong>
4、contenteditable属性
contenteditable属性规定元素内容是否可编辑的,"true"表示可编辑,"false"表示不能编辑。
<p contenteditable="true">这段文字可被编辑</p>
<p contenteditable="false">这段文字不能被编辑</p>
5、其它的全局属性,如:hidden、style、title、lang、spellcheck、translate、dir、draggable、dropzone等
二、什么是web语义化?有什么好处
web语义化是指使用语义恰当的标签,使页面有良好的结构,页面元素有含义,能够让人和搜索引擎都容易理解
好处:1、丢掉或者去掉样式的时候,让页面呈现清晰的结构
2、搜索引擎的爬虫也依赖于标记来确定上下文和个关键字的权重
3、让爬虫容易理解
4、便于网站的开发与维护
三、http request methods有哪些,各有什么用途
get:请求指定的页面信息,并返回实体主体
post:向指定资源提交数据进行处理请求(提交表单或者上传文件)。数据被包含在请求体重。post请求可能会导致新的资源的建立和已有资源的修改。
其它:head、put、delete、connect、option、trace、patch、move、copy、link、unlink、wrapped、extension-mothed
四、什么是渐进增强
渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。
五、css选择器有哪些
标签选择器、类选择器、id选择器、全局选择器、组合选择器、继承选择器、伪类选择器、字符串匹配的属性选择符(^ $ *三种,分别对应开始、结尾、包含)
六、diaplay:none与visibility:hidden有什么区别
display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。
visible:hidden--- 使对象在网页上不可见,但该对象在网页上所占的空间没有改变,通俗来说就是看不见但摸得到。
七、什么是FOUC?如何避免
如果使用import方法对css进行导入,会导致某些页面在Windows 下的Internet Explorer出现一些奇怪的现象:
以无样式显示页面内容的瞬间闪烁,
这种现象称之为文档样式短暂失效(Flash of Unstyled Content),简称为FOUC.
原因大致为:
1,使用import方法导入样式表。
2,将样式表放在页面底部
3,有几个样式表,放在html结构的不同位置。
其实原理很清楚:当样式表晚于结构性html 加载,当加载到此样式表时,页面将停止之前的渲染。
此样式表被下载和解析后,将重新渲染页面,也就出现了短暂的花屏现象。
解决方法:使用link标签将样式表放在文档head中
八、javascript有哪几种数据类型
基本类型:number/string/boolean
复杂类型:array/对象类型(object)/函数类型(function)/正则类型(regexp)
空类型:null/undefiend
九、javascript如何实现跨域通讯
1、使用jsonp跨域
2、通过document.domain+ iframe (只有在主域相同的时候才能使用该方法)
3、使用window.name来进行跨域4、使用HTML5的window.postMessage方法来跨域传送数据
4、利用flash
5、利用iframe和location.hash
6.利用CORS
十、使用原生js写出今天是星期几,如今天是星期一,则显示今天是星期一
<!--html代码--> <div id="day"></div> <!--js代码--> <script type="text/javascript"> var dayArr=["星期日","星期一","星期二","星期三","星期四","星期五","星期六",] var data=new Date(); var curDay=dayArr[data.getDay()]; document.getElementById("day").innerHTML="今天是"+curDay; </script>