4.行内元素和块级元素的区别?
格式上:默认情况下,行内元素不会以新行开始,而块级元素会
内容上:默认情况下,行内元素只能包含文本和其他行内元素,而块级元素可以包含文本和其他行内元素与块级元素
行内元素和块级元素属性不同,行内元素设置width/height无效
5.空元素?
空元素是指中间没有内容的标签,即单标签
...
6.页面导入样式时,使用@import 和 link标签 有什么区别?
1.@import 是css的语法规则,只有导入样式表的作用;而link既可以导入样式表,还可以设置rel等属性引入网站图表等
2.link标签引入的css被同时加载;而用@import 引入的css则需要等到页面加载完毕之后加载
3.link标签可以被js脚本动态插入改变样式,而@imoprt 不可以
7.浏览器内核/引擎?
浏览器的内核引擎分为渲染引擎和JS引擎,
渲染引擎的功能就是渲染,即在浏览器中展示所请求的内容,默认情况下,渲染引擎可以渲染xml,html,图片等,还可以借助插件渲染pdf
JS引擎的功能就是解析执行javascript脚本,
8.常见的浏览器内核?
IE Trident
Chrome Blink
Firefox Gecko
Safari Webkit
9.浏览器渲染过程中遇到js文件怎么处理?
在构建DOM时,HTML若遇到了javascript脚本,则它会暂停对文档的解析,通过JS引擎解析运行javascript脚本,等待js加载完毕,才会从中断的地方继续加载文档
10.defer 和 async 的作用和区别?
JS脚本没有defer和async属性的话,浏览器会立即加载运行javascript
defer属性表示延迟执行引入的javascript,即这段代码在加载时HTML并未停止解析,这两个过程是并行的
async属性代表异步执行javascript,与defer的区别在于,如果已经加载好,就会开始执行,也就是说它的执行仍然会阻塞文档的解析,只是它的加载过程中不会阻塞,多个脚本的执行顺序无法保证
11.渲染页面时常见的不良影响?
样式闪烁问题: CSS文件大加载缓慢或者放在body底部导致
白屏:JS脚本放在head头部加载
12.重绘 和 回流 ?
重绘:当渲染树中一些元素需要更新属性时,而这些属性只影响元素的外观,风格,而不会影响布局的操作,比如 background color 等称为重绘;
回流:当渲染树中的一部分或全部因为元素的尺寸 布局 隐藏等改变而需要重新构建的操作,会影响到布局的操作称为回流。
添加/删除可见的DOM元素
元素尺寸改变 (margin padding border width height)
内容变化,(input输入框中输入文字)
浏览器窗口尺寸改变 -resize事件
。。。
回流必引起重绘,重绘不一定会引起回流。
13.如何减少回流?
使用transfrom代替top
不要使用table布局,可能很小的改动都会造成整个table的回流
不要一条一条的修改DOM样式,与其这样,还不如事先定义好css的class,然后修改DOM的className
14.HTML5 有哪些新特性?
1.H5语义化标签
2.表单控件:date time email search url
2.Canvas画布
3.Video Audio 音视频
4.本地存储 localStorage
5.地理定位 geolocation
6.离线存储 appcache
7.新的文档属性 document.visibilityState
8.新的技术 websocket
15.如何处理HTML5新标签的兼容性问题?
通过现成第三方库 html5shiv.js / 通过document.createElement()方法创建标签
16. b和strong 与 i和em的区别?
b和strong都是粗体,i和em都是斜体
strong和em具有语义化,强调文本
17.前端需要注意哪些SEO优化?
1.合理的title,description,keyword,title值强调重点即可,description把内容高度概括,keyword列举出几个关键字即可
2.语义化的HTML代码,符合W3C规范
3.重要内容html代码放在最前面,保证内容肯定被抓取
4.重要的内容不要用js输出,爬虫不会执行js获取内容
5.非装饰性的图片必须用alt
6.提高网站速度:网站速度是搜索引擎排序的一个重要指标
18.浏览器的存储方式及区别?
浏览器的存储方式有cookie sessionStorage localStorage
cookie:最多能存储4k数据,生成时间由expire属性决定,只能被同源的页面访问共享
sessionStorage:会话存储,能够存储5M大小或更大的数据,随着浏览器的关闭而释放数据,只能被同一个窗口的同源页面所共享访问
localStorage:本地存储,能够存储5M大小或更大的数据,不会随着浏览器的关闭而清除数据,除非手动清除,否则会一直存在浏览器中,只能被同源的页面访问共享
19.Lable标签的作用是什么? 用法?
label标签用来定义表单控件间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上
20.如何实现浏览器内多个标签页之间的通信?
1.可以通过websocket协议,因为websocket协议可以实现服务器推送,所以服务器就可以用来当做这个中介者,标签页通过向服务器发送数据,然后服务器向其他标签页推送转发
2.使用localStorage本地存储方式,可以在一个标签页对localStorage变化事件进行监听,然后当另一个标签页修改数据的时候,就可以通过这个监听事件来获取到数据
21.webSocket如何解决低版本浏览器兼容性问题?
1.Adobe Flash Socket
2.基于长轮询的XHR请求(XmlHttpRequest ajax)
22.页面可见性(Page Visibility API) 可以有哪些用途?
这个API的作用在于,通过监听网页的可见性,可以预判卸载网页,还可以用来节省资源,比如:一旦用户不看当前网页,就可以停止对当前网页的轮询,停止网页的动画,音视频等等
23.实现不用border画出1px高度的线,兼容浏览器标准模式和怪异模式
- {
-
- overflow:hidden;
-
- height:1px;
-
- background-color:red;
-
- }
24.title和h1的区别?
title属性没有明确意义只是表示标题,h1则表示层次明确的标题,对页面信息的抓取也有很大的影响
25.img的title和alt的区别?
title通常是鼠标滑入当前元素时所展示的信息,而alt是img的特有属性,为图片无法展示时显示的信息,搜索引擎会重点分析alt属性
26.Canvas和svg的区别?
Canvas是一种通过JavaScript绘制2D图形的方法,以像素的形式描绘,所以放缩时会导致锯齿失真的情况
SVG是一种通过XML绘制的2D图形的语言,当SVG缩放时并不会失真
27.网页验证码的作用?
1.区分用户是计算机还是人的公共全自动程序,可以防止恶意破解密码,刷票,论坛灌水
2.有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试
28.attribute和property的区别?
如上述div元素,可通过 document.getElementById('dv').getAttribute('id') 获取id的值 也可以通过document.getElementById('dv').id 的方式
前者称为attribute ,后者称为property
只要是HTML标签内定义的都是attribute,两者同步,Attribute值是字符串类型
Property属性则可以看做是DOM对象的键值对,用点操作符对它们进行操作,非自定义attribute,如id、class、titile等,都会有对应的property映射。就算没有在标签中出现都会有空值
实际编程中,基本的DOM操作都是使用property的点操作符
只有两种情况不得不使用attribute,
1.自定义Attribute,因为它不能同步到DOM property (比如上面的div元素的data-id属性)
2.访问内置的HTML标签的Attribute,这些attribute不能从property上同步过来,(比如input标签的value值)
29.用于预格式化文本格式的标签是?
保持文本原有的格式
30.head标签中必不可少的是?
为头部标签,可以在head标签中使用