前端的面试和学习都是不可或缺的事情,在这里收集一些高频面试题,供本身如今和之后查阅和查缺补漏的同时,也但愿对小伙伴有所帮助。javascript
前端HTML+CSS笔试题面试题
前端JS笔试题面试题
前端Vue笔试题面试题
前端小程序笔试题面试题css
一、用正确的标签作正确的事情!
二、HTML
语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;
三、在没有样式CSS
状况下也以一种文档格式显示,而且是容易阅读的。
四、搜索引擎的爬虫依赖于标记来肯定上下文和各个关键字的权重,利于 SEO
。
五、使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解html
HTML5
如今已经不是 SGML
的子集,主要是关于图像,位置,存储,多任务等功能的增长前端
canvas
video
和 audio
元素localStorage
长期存储数据,浏览器关闭后数据不丢失sessionStorage
的数据在浏览器关闭后自动删除article
、footer
、header
、nav
、section
calendar
、date
、time
、email
、url
、search
webworker
、 websocket
、 Geolocation
移除的元素:html5
basefont
、big
、center
、font
、s
、strike
、 tt、u
frame
、frameset
、noframes
支持HTML5
新标签:java
IE8/IE7/IE6
支持经过document.createElement
方法产生的标签HTML5
新标签html5shim
alt
是图片加载失败时,显示在网页上的替代文字;title
是鼠标放上面时显示的文字。alt
是img
必要的属性,而title
不是。url
到显示页面的步骤URL
交给DNS
域名解析,找到真实IP
,向服务器发起请求;HTML
、JS
、CSS
、图象等);HTML
、JS
、CSS
等)进行语法解析,创建相应的内部数据结构(如HTML
的DOM
);class
:为元素设置类标识data-*
: 为元素增长自定义属性draggable
: 设置元素是否可拖拽id
: 元素id,文档内惟一lang
: 元素内容的的语言style
: 行内css样式title
: 元素相关的建议信息主要分红两部分:渲染引擎(layout engineer
或Rendering Engine
)和JS
引擎web
渲染引擎:负责取得网页的内容(HTML
、XML
、图像等等)、整理讯息(例如加入CSS
等),以及计算网页的显示方式,而后会输出至显示器或打印机。浏览器的内核的不一样对于网页的语法解释会有不一样,因此渲染的效果也不相同。全部网页浏览器、电子邮件客户端以及其它须要编辑、显示网络内容的应用程序都须要内核面试
JS
引擎则:解析和执行javascript
来实现网页的动态效果算法
最开始渲染引擎和JS
引擎并无区分的很明确,后来JS
引擎愈来愈独立,内核就倾向于只指渲染引擎canvas
cookies
,sessionStorage
和 localStorage
的区别?cookie
是网站为了标示用户身份而储存在用户本地终端(Client Side
)上的数据(一般通过加密)
cookie
数据始终在同源的http
请求中携带(即便不须要),记会在浏览器和服务器间来回传递
sessionStorage
和localStorage
不会自动把数据发给服务器,仅在本地保存
存储大小:
cookie
数据大小不能超过4k
sessionStorage
和localStorage
虽然也有存储大小的限制,但比cookie
大得多,能够达到5M
或更大 有期时间:
localStorage
存储持久数据,浏览器关闭后数据不丢失除非主动删除数据 sessionStorage
数据在当前浏览器窗口关闭后自动删除 cookie
设置的cookie
过时时间以前一直有效,即便窗口或浏览器关闭
a b span img input select strong
div ul ol li dl dt dd h1 h2 h3 h4… p
<br> <hr> <img> <input> <link> <meta>
svg
border-radius
js
实现 须要求一个点在不在圆上简单算法、获取鼠标坐标等等1XX
:信息状态码2XX
:成功状态码3XX
:重定向4XX
:客户端错误5XX
: 服务器错误渐进加强:针对低版本浏览器进行构建页面,保证最基本的功能,而后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级:一开始就构建完整的功能,而后再针对低版本浏览器进行兼容。
一、使用CSS3
代码代替JS
动画(尽量避免重绘重排以及回流)
二、页面中空的href
和 src
会阻塞页面其余资源的加载 (阻塞下载进程)
三、用innerHTML
代替DOM
操做,减小DOM
操做次数,优化javascript
性能
四、当须要设置的样式不少时设置className
而不是直接操做style
五、少用全局变量、缓存DOM
节点查找的结果。减小IO
读取操做
六、图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳
一、减小HTTP
请求:合并文件、CSS
精灵、inline Image
二、将样式表放到页面顶部
三、不使用CSS
表达式
四、使用<link>
不使用@import
五、将脚本放到页面底部
六、将javascript
和css
从外部引入
七、压缩javascript
和css
盒模型分为两类: IE盒模型和标准盒模型。 二者的区别在于:
IE
盒模型的width/height = content + border + padding
width/height = content
!important > id > class > tag; !important
比 内联优先级高css
选择器border-radius
text-shadow
transform
CSS3新增伪类有那些?
:after
在元素以前添加内容,也能够用来作清除浮动。:before
在元素以后添加内容。:enabled
已启用的表单元素。:disabled
已禁用的表单元素。:checked
单选框或复选框被选中。通配符:*
ID选择器:#ID
类选择器:.class
元素选择器:p、a 等
后代选择器:p span、div a 等
伪类选择器:a:hover 等
属性选择器:input[type="text"] 等
复制代码
link
是HTML
方式,@import
是CSS
方式link
最大限度支持并行下载,@import
过多嵌套致使串行下载,出现FOUC
(文档样式短暂失效)link
能够经过rel="alternate stylesheet"
指定候选样式@import
,可使用@import
对老浏览器隐藏样式@import
必须在样式规则以前,能够在css
文件中引用其余文件link
优于@import
BFC
有什么用什么是BFC
?
BFC
格式化上下文,它是一个独立的渲染区域,让处于 BFC
内部的元素和外部的元素相互隔离,使内外元素的定位不会相互影响如何产生BFC
?
display: inline-block
position: absolute/fixed
BFC做用
解决上外边距重叠;重叠的两个box都开启bfc;
解决浮动引发高度塌陷;容器盒子开启bfc
解决文字环绕图片;左边图片div,右边文字容器p,将p容器开启bfc
复制代码
position: absolute
绝对定位:是相对于元素最近的已定位的祖先元素
position: relative
相对定位:相对定位是相对于元素在文档中的初始位置
display:inline-block
何时不会显示间隙?margin
负值font-size:0
letter-spacing
word-spacing
div
定义height
div
标签clear:both
div
定义伪类:after
和zoom
div
定义overflow:hidden
div
也浮动,须要定义宽度br
标签clear:both
CSS
初始化每每会出现浏览器之间的页面显示差别。SEO
有必定的影响,但鱼和熊掌不可兼得,但力求影响最小的状况下初始化思路:
margin
撑开<div>
包含,而后靠负margin
造成bfc
flex
position
有哪些值?有什么做用?static
。默认值,不脱离文档流,top
,right
,bottom
,left
等属性不生效。relative
。不脱离文档流,依据自身位置进行偏离,当子元素设置absolute
,将依据它进行偏离。absolute
。脱离文档流,依据top,right,bottom,left
等属性在正常文档流中偏移位置。fixed
。经过浏览器窗口进行定位,出现滚动条的时候,不会随之滚动。height
和line-height
设置同一高度。position+margin
:设置父元素:position: relative;
,子元素height: 100px;position:absolute;top: 50%; margin: -50px 0 0 0;
(定高)position+transform
:设置父元素position:relative
,子元素:position: absolute;top: 50%;transform: translate(0, -50%);
(不定高)display:flex;align-items: center;
(不定高)text-align:center
margin
为auto
;position
为relative
,元素设left:0;right:0;margin:auto;
flex-box
布局,指定justify-content
属性为center
display
设置为tabel-ceil
display: flex //设置Flex模式
flex-direction: column //决定元素是横排仍是竖着排
flex-wrap: wrap //决定元素换行格式
justify-content: space-between //同一排下对齐方式,空格如何隔开各个元素
align-items: center //同一排下元素如何对齐
align-content: space-between //多行对齐方式
复制代码
stylus/sass/less
区别Scss
和LESS
语法较为严谨,LESS
要求必定要使用大括号“{}”,Scss
和Stylus
能够经过缩进表示层次与嵌套关系Scss
无全局变量的概念,LESS
和Stylus
有相似于其它语言的做用域概念Sass
是基于Ruby
语言的,而LESS
和Stylus
能够基于NodeJS NPM
下载相应库后进行编译;css
的content
属性专门应用在 before/after
伪元素上,用于来插入生成内容。最多见的应用是利用伪类清除浮动。
css
压缩与合并、Gzip
压缩css
文件放在head
里、不要用@import
CSS3
中提出的三个属性:transition、transform、animation
transition
:定义了元素在变化过程当中是怎么样的,包含transition-property、transition-duration、transition-timing-function、transition-delay
。transform
:定义元素的变化结果,包含rotate、scale、skew、translate
。animation
:动画定义了动做的每一帧(@keyframes
)有什么效果,包括animation-name,animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-direction