bfc:
(猿辅导)
css 中的盒模型,怎么切换
[答: ]
我们传统的布局方式是基于在盒子模型下的,依赖于display属性的,position属性的或者是float属性的,但是在传统的布局上面并不好布局;
Flex 容器有如下6个属性
flex-direction :该属性决定主轴的方向(即项目的排列方向)。row从左到右,row-reverse相反,column从上到下,column-reverse相反
flex-wrap:控制伸缩容器是单行还是多行,nowrap默认单行显示不换行,wrap换行,第一行在上方,wrap-reverse伸缩容器多行显示,第一行在下方
flex-flow:该属性是flex-direction伸缩项目主轴方向属性和flex-wrap 换行属性的简写形式
justify-content:定义伸缩项目在主轴上的对齐方式 center,flex-start/end,space-between两端对齐
align-items: 伸缩项目在y轴对齐方式,主轴x轴,交叉轴就是y轴, justify-content和align-items是一对,前者分别定义主轴和侧轴的 方向,后者分别定义主轴和侧轴中项目的 对齐方式
align-content:调准伸缩行在伸缩容器里的对齐方式,flex-start交叉轴起点对齐 flex-end交叉轴终点对齐。center交叉轴中点对齐
方法一:使用带clear属性的空元素
在浮动元素后使用一个空元素如
.clearfix:after{ display: block; height: 0; clear: both; visibility: hidden; }
css3新属性动画 animation,和摇骰子动画类似
加css transation样式,trasation 里面加 animation 定义执行动画的轨迹和时长,
@keyframes
0% {
transform: translateY(-300px);
-ms-transform:translateY(-300px);
-webkit-transform:translateY(-300px);
}
(美团 start)
参考https://segmentfault.com/a/1190000016990089
参考实例 https://blog.csdn.net/fuweilian1/article/details/78965783
https://www.jianshu.com/p/8fd80c368570
【答】
1.传统的callback回调方式
let callFn = (arg1,arg2,cb)=>{
//如果arg1>arg2回调正常,否则回调错误信息
setTimeout(function(){
if(arg1>arg2){
cb(null,arg1+arg2);
}else{
cb(new Error('err'),null);
}
},5000);
}
//调用
callFn(1,2,function(err,data){
if(err){
//错误处理
}else{
//正确处理
}
});
2.使用es6来写上面的功能
let promiseFn = (arg1,arg2)=>{
return new Promise((resole,reject)=>{
if(arg1>arg2){
resole(arg1+arg2);
}else{
reject(new Error('err'));
}
});
};
//调用
promiseFn(1,2).then(data=>{
//正确处理
}).catch(err=>{
//错误处理
});