前端最新面试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这篇文章将分为三部分css和html为一部分,js、jQuery为一部分,vue与性能优化为一部分,今天会先整理css与html

1,弹性盒布局

父级设置display:flex将对象作为弹性伸缩盒显示

采用Flex布局的元素,被称为Flex容器(flex container),简称“容器”。其所有子元素自动成为容器成员,成为Flex项目(Flex item),简称“项目”。

容器默认生成两根主轴,水平方向主轴(main axis)和垂直方向交叉轴(cross axis),默认项目按主轴排列。

设置在容器上的属性有6种

分别为

flex-direction:决定主轴的方向(即项目的排列方向)

flex-wrap:定义换行情况

flex-flow:flex-direction和flex-wrap的简写,默认row nowrap

justify-content:定义项目在主轴上的对齐方式。

align-item:定义在交叉轴上的对齐方式

align-content:定义多根轴线的对齐方式

详细属性值请参阅文档

2,html5新标签与新功能

新标签:

header,footer,article,aside,nav,section,time,progress,

ruby,mark....

新功能:

vidio,audio,canvas,拖放,离线应用,web存储(sessionStorage,localStorage,sessionStorage 方法针对一个session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除,localStorage 对象存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用),历史状态管理,地理位置,新增input类型(color、date、datetime、datetime-local、email、month、number、range、search、tel、time、url、week),新增表单元素,WebSocket

3、css3的新特性

属性选择器:[attribute],[attribute=value],[attribute~=value]...

伪类选择器::first-letter ,:first-line,:first-child....

伪元素选择器::before,:after

border:border-image,border-radius,box-shadow

背景:background-size,background-origin,background-clip,background-image

渐变:线性渐变(Linear Gradients)径向渐变(Radial Gradients)

background: linear-gradient(direction, color-stop1, color-stop2, ...);

background: radial-gradient(center, shape size, start-color, ..., last-color);

字体:@font-face

转换和变形:transform

过度:transition

动画:animation,@keyframes

媒体查询:@media all and

4,兼容问题:

各浏览器的margin和padding,图片默认的间距,ios和安卓对fixed的解析,特殊样式的兼容(-moz-:firefox,-webkit-:Chrome,-o-:opera,-ms-:ie)

渐进增强和优雅降级

渐进增强观点认为应该关注于内容本身。内容是我们建立网站的诱因,有的网站展示它,有的则收集它,有的寻求、有的操作,还有的网站甚至包含以上的种种,但相同点是他们全都涉及到内容,这使得“渐进增强”成为一种更为合理的设计范例。这也是它立即被Yahoo!所采纳并用以构建其“分级式浏览器支持(Graded Browser Support)“策略的原因所在。

优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如IE、Mozilla等)的前一个版本。

在这种设计范例下,旧版的浏览器被认为仅能提供“简陋却无妨(poor,but passable)”的浏览体验。你可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大的错误之外,其它的差异将被直接忽略。

5、css选择器的优先级

important(1000)>行内(1000)>id(100)>class(10)>标签(1)>*(0)

6、清除浮动

总结有两种方法

方法一:使用clear属性如添加空白div或使用伪元素,添加clear:both

方法二:形成BFC:如:overflow:hidden,display:inline,position:absolute,float:left

7,引入css的方法

link,@importat,他们的不同之处在于important用在css中并且引入的css在页面加载完之后加载,link用在html中并且引入的css 和页面同时加载,

8、盒子模型

包含元素内容(content),内边距(padding),边框(border),外边距(margin),分为标准盒子模型和怪异盒子模型,标准盒子

模型:盒子的总宽度=margin+content。怪异盒子模型:盒子的总宽度=margin+contant+padding+border

CSS3中新增的属性:box-sizing模拟了标准盒子模型和IE盒子模型box-sizing:content-box | bordrer-box | padding-box | inherit。

默认值:

content-box:标准盒子模型(border和padding不计算入width之内)

border-box:IE盒子模型(border和padding计算入width之内,其实就是怪异模式了~)

padding-box:padding计算入width内

ie8+浏览器支持content-box和border-box;

ff则支持全部三个值,只有ff支持padding-box

IE浏览器在getComputedStyle得到width/height是按照标准模式计算的,而不论box-sizing的取值

在HTML页面声明 即可按照标准模型显示页面内容

9,display:none和visibility:hidden两者的区别

空间占据:display:none隐藏后不占据额外空间,它会产生回流和重绘,而visibility:hidden和opacity:0元素虽然隐藏了,但它们仍然占据着空间,它们俩只会引起页面重绘。

子元素继承:

display:none不会被子元素继承,但是父元素都不在了,子元素自然也就不会显示了,皮之不存,毛之安附~~

visibility:hidden 会被子元素继承,可以通过设置子元素visibility:visible 使子元素显示出来

opacity: 0 也会被子元素继承,但是不能通过设置子元素opacity: 0使其重新显示

事件绑定:

display:none 的元素都已经不再页面存在了,因此肯定也无法触发它上面绑定的事件;

visibility:hidden 元素上绑定的事件也无法触发;

opacity: 0元素上面绑定的事件是可以触发的。

过渡动画:

transition对于display肯定是无效的,大家应该都知道;

transition对于visibility也是无效的;

transition对于opacity是有效,大家也是知道的:).

10,position所有属性:

position: relative;相对定位:

1> 不影响元素本身特性(无论区块元素还是内联元素会保留其原本特性)

2> 不会使元素脱离文档流(元素原本位置会被保留,即改变位置也不会占用新位置)

3> 没有定位偏移量时对元素无影响(相对于自身原本位置进行偏移)

4>提升层级(用z-index样式的值可以改变一个定位元素的层级关系,从而改变元素的覆盖关系,值越大越在上面,z-index只能在position

相关文档
最新文档