Html
html文档类型
-
html5
-
html4.01 Strict 严格型
-
html4.01 Transitional 过渡型
-
html4.01 Frameset 框架型
块级元素,行内元素有哪些?
块级元素
:div,p,ul,li,ol,form,table,h1~h6,pre,hr;
行内元素
:a,span,b,i,em,img,select,input,textarea,u;
什么是语义化?为什么要用语义化?有哪些语义化标签?
语义化
就是正确的标签干正确的事情,能够便于开发者阅读和编写出优雅的代码并让网路爬虫更好的解析。
- 有利于SEO,有利于搜索引擎爬虫更好的理解我们的页面,提高页面的权重。
- 在没有css的时候能够清晰的看出页面结构,增强可读性。
- 便于团队开发和维护,可以让开发者更容易看明白,从而提高团队效率和协调能力。
- 支持多终端设备的浏览器渲染。�
语义化标签
:article,section,main,title,header,footer,aside,nav
iframe
iframe元素会创建包含一个文档的内联框架
优点
:
1.解决加载缓慢的第三方内容如图标和广告等的加载问题
2.并行加载脚本
缺点
:
1.iframe会阻塞主页面的onload事件
2.即使内容为空,加载也需要事件
3.设备兼容性差
什么是BFC?
BFC(Block formatting context)直译为“块级格式化上下文”。它是一个独立的渲染区域,只有Block-level box参与,它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。
布局规则:
- 内部的Box会在垂直方向,一个接一个的放置。
- 每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
- BFC的区域不会与float box重叠。
- BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
- 计算BFC的高度时,浮动元素也参与计算。
- 哪些元素会生成BFC:
a. 根元素
b. float属性不为none
c. position为absolute或fixed
d. display为inline-block,table-cell,table-caption,flex,inline-flex
e. overflow不为visible
mate标签
缺少内容
浏览器
HTML5
html5的离线存储使用和工作原理
用户与互联网没有连接时,可以正常访问网站内容;用户与互联网连接时,更新用户机器上的缓存文件。
工作原理
:
在页面头部加入一个manifest的属性,如下:
manifest有三部分组成:
1.CACHE:表示需要缓存的资源列表
2.NETWORK:表示它下面的资源列表不会被缓存,只能在线访问,但如果CACHE中存在还是会被缓存,CACHE优先级高
3.FALLBACK:表示如果访问第一个资源失败,那么就使用第二个资源来替换它
html5新特性
用于绘画的canvas元素
用于媒介回放的video和audio元素
对本地离线存储更好的支持
语义化元素标签
新的表单控件:email,date,time,url,search
拖放:drag,drop
内联的svg
地理定位:navigator.geolocation
web 存储:localStorage sessionStorage
web worker:当在页面执行脚本时,页面的状态是不响应的,直到脚本已完成。
web worker是运行在后台的javascript,独立于其他脚本,不影响页面的性能,
说下你对浏览器内核的理解
浏览器内核主要分为两部分:渲染引擎和JS引擎。
渲染引擎
:负责取得网页的内容(html,xml和图像等),整理讯息(css),以及计算页面的显示方法,然后输出到显示器或者打印机上。
JS引擎
:解析和执行JavaScript来实现页面的动态效果。
常用浏览器内核有哪些?
Trident内核:IE;
Webkit:Safari, Chrome;
CSS
为什么要初始化css样式?
浏览器兼容问题,不同的浏览器对标签元素的默认值是不同的,如果没有对css进行初始化会出现浏览器之间的页面差异
css的盒子模型
盒子模型 = 内容区域content + 内边距padding + 边框border + 外边距margin
两种盒子模型:IE盒子模型(content+padding+border)怪异模式,W3C的盒子模型(content)标准模式
box-sizing:
border-box,padding和border被包含在定义的width和height中,元素的实际宽高等于设置的值
content-box,padding和border不被包含在定义的width和height中,元素的实际宽高等于设置的值+padding+border
实现元素的垂直居中有哪几种?
- 文本:设置line-height,text-align:center;
- 元素(已知宽高):
width: 100px;
height: 100px;
position: absolute;
left: 50%;
top: 50%;
margin: -50px 0 0 -50px;
3.元素(未知宽高):
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
4.flex方式:
display: flex;
align-items: center;
justify-content: center;
5.table类型:
.parent {
display: table;
}
.child {
display: table-cell;
vertical-align: middle;
}
隐藏元素的实现方式有哪几种?
1.visibility: hidden; 隐藏元素,但是元素占用的空间仍然存在;
2.opacity: 0; 完全透明,元素占用的空间存在;
3.position定位; 元素脱离文档流,将元素的位置设置在可见区域之外;
4.display: none; 元素完全不可见,也不占用文档的空间;
css3有哪些新特性?
animation 动画
transtion 过渡
transform (旋转、缩放、位移、倾斜)
@font-face 加载字体
box-shadow 阴影
gradient 渐变
选择器::nth-child(), :first-child ...
JavaScript
数据类型,最新版ECMA标准定义7种
原始类型
:undefined, null, string, boolean, number, symbol
引用类型
:Object
操作DOM的常用API?
- 节点查找 ducument.getElementById
- 节点创建 createElement cloneNode
- 节点修改 appendChild insertBefore RemoveChild replaceChild
- 元素属性 setAttribute getAttribute
BOM常用API
- focus() —— 使窗体或控件获取焦点
- blur() —— 与focus函数相反,使窗体或控件失去焦点
- open() —— 打开(弹出)一个新的窗体
- close() —— 关闭窗体
JSONP的原理?
就是利用