2018web前端面试题总结 (2)

十一、z-index属性 z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
position的值的属性大于z-index Z-index 仅能在定位元素上奏效(例如 position:absolute;)
元素可拥有负的 z-index 属性值,父子关系的元素z-index设置无效

十二、块元素和行内元素
1.块元素会独占一行,默认情况下,其宽度自动填满父元素宽度 行元素不会占据一行,会一直排在一行,直到一行排不下
2.行元素没有宽度和高度属性,块级元素即使设置了宽度,还是会独占一行
块级元素: div p form ul li ol dl h1-h6
行内元素:span img a i s u b a strong em
行内块元素:input

十三、如何画一个三角形: 设置宽高,然后用border去画
width:0;
height:0;
border:25px solid transparent;
border-top-color:red;

十四、伪类:link 表示链接正常情况下(即页面加载完成时)显示的颜色
hover:表示鼠标悬停时显示的颜色
visited:链接被点击时显示的位置
focus:元素获得光标焦点时的颜色
active: 元素处于激活状态
link -> visited -> hover -> focus -> active

十五、雪碧图:多个图片集成在一个图片中的图
使用雪碧图可以减少网络请求的次数,加快允许的速度
通过background-position,去定位图片在屏幕的哪个位置

十六: Margin-top和translate  50%的区别

Margin-top默认以左上角为目标运动

Translate 默认以中心点为目标运动

十七:2px和2区别

没有单位可以用于缩放的位置ex: flex-grow

十八:line-height是针对谁设置的,继承谁?

设置数字,此数字会与当前的字体尺寸相乘来设置行间距

 

布局面试
一、flex弹性布局,
可以简单的使一个元素居中(包括水平和垂直居中)
栅格式系统布局,bootstrap grid

二、圣杯和双飞翼布局 三栏是布局(两边两栏宽度固定,中间栏宽度自适应)
方案一:position(绝对定位法) center的div需要放在最后面
绝对定位法原理将左右两边使用absolute定位,因为绝对定位使其脱离文档流,后面的center会自然流动到他们的上面去,然后margin属性,留出左右两边的宽度。就可以自适应了。
方案二:float 自身浮动法 center的div需要放到后面
自身浮动法的原理就是对左右使用float:left和float:right,float使左右两个元素脱离文档流,中间的正常文档流中,使用margin指定左右外边距对其进行一个定位。
圣杯布局:原理就是margin负值法。使用圣杯布局首先需要在center元素外部包含一个div,包含的div需要设置float属性使其形成一个BFC,并且这个宽度和margin的负值进行匹配

三、左边定宽,右边自适应
方案一:左边设置浮动,右边宽度设置100%
.left{float:left;height: 150px;width: 150px;}
.right{width: 100%;height: 200px;margin-left: 150px;}
方案二:同上将float设置为position
方案三:父容器设置display:flex right部分是设置flex:1

四、水平居中
行内元素居中(父元素text-align:center)
块状元素居中(块状元素没发用text-align)
1.宽度一定:margin:auto
2.宽度不定:块级变行内,然后在父上text-aligin
float

四、BFC https://juejin.im/post/5909db2fda2f60005d2093db
理解:BFC是css布局的一个概念,是一块独立的渲染区域,一个环境,里面的元素不会影响到外部的元素
如何生成BFC:(脱离文档流)
【1】根元素,即HTML元素(最大的一个BFC)
【2】float的值不为none
【3】position的值为absolute或fixed
【4】overflow的值不为visible(默认值。内容不会被修剪,会呈现在元素框之外)
【5】display的值为inline-block、table-cell、table-caption
BFC布局规则:1.内部的Box会在垂直方向,一个接一个地放置。
2.属于同一个BFC的两个相邻的Box的margin会发生重叠
3.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此, 文字环绕效果,设置float
4.BFC的区域不会与float box重叠。
5.计算BFC的高度,浮动元素也参与计算
BFC作用:1.自适应两栏布局
2.可以阻止元素被浮动元素覆盖
3.可以包含浮动元素---清除内部浮动 原理::触发父div的BFC属性,使下面的子div都处在父div的同一个BFC区域之内
4.分属于不同的BFC时,可以阻止margin重叠

js面试
一、 this的指向:https://www.cnblogs.com/pssp/p/5216085.html
1.作为普通函数,this指向window。ex: fn();//window
2.自动引用正在调用当前方法.前的对象ex: a.fn();//a
3.如果有嵌套的情况,则this绑定到最近的一层对象上;ex: o.a.fn();//a
4.构造器调用(类型.prototype.fun),this指向返回的这个对象(将来调用函数.前的子对象)。
5.箭头函数 箭头函数的this绑定看的是this所在函数定义在哪个对象下,就绑定哪个对象
注意:
1.this永远指的是最后调用它的对象ex:var j=o.b.fn; j(); //window
2.new Fun() ,this指向的是正在创建的新对象;ex: var a=new fn();a.uname//a
3.this碰到retuen,调用方法里return了一个对象,this指向return对象

怎么改变this的指向呢? 1.使用es6的箭头函数;2.在函数内部使用that = this;3.使用apply,call,bind; 4.new实例化一个对象

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjfsg.html