阿里巴巴面试题出自:http://job.aliued.com/race/chooseRace/wd.html
BI上也有很多解法:http://bbs.blueidea.com/thread-2824105-1-1.html
前段时间在一位朋友的引荐下去应聘前端开发工程师,给我了面试题;
下面我把我的解法放出来:
1.用CSS实现布局
让我们一起来做一个页面
首先,我们需要一个布局。
请使用CSS控制3个div,实现如下图的布局。
??
这题不难,在平时项目开发过程中也经常会碰到:
主要考虑几个问题:1.IE6的3像素BUG;2.清楚浮动;
CSS代码
- div{background:#CCCCCC;} ??
- #first{float:left;width:100px;?height:150px} ??
- #second{clear:left;float:left;margin-top:10px;width:100px;height:150px}??
- #third{zoom:1;?width:200px;margin-left:110px;_margin-left:107px;?height:310px}??
?
XML/HTML代码
- <div?id=“first”></div>??
- <div?id=“second”></div>??
- <div?id=“third”></div>??
?
查看demo:https://www.html.cn/demo/alibaba/alibaba1.html
2.用javascript优化布局
由于我们的用户群喜欢放大看页面
于是我们给上一题的布局做一次优化。
当鼠标略过某个区块的时候,该区块会放大25%,
并且其他的区块仍然固定不动。
提示:
也许,我们其他的布局也会用到这个放大的效果哦。
可以使用任何开源代码,包括曾经你自己写的。
关键字:
javascript、封装、复用
?
惭愧啊,用上边那个布局我怎么也没把它优化出来,硬这头皮用绝对定位改了布局;
所以样式改成了这样
CSS代码
- body{?margin:0;?padding:0} ??
- div{background:#CCCCCC;?position:absolute} ??
- #first{width:100px;?height:150px} ??
- #second{top:160px;width:100px;height:150px} ??
- #third{?width:200px;?height:310px;?left:110px}??
javascript要考考虑封装、复用
?
?
JavaScript代码
- function?zoom(id,x,y){?//?设置缩放函数参数:容器id、横向缩放倍数、纵向缩放倍数(等比例缩放时也可以设定一个参数) ??
- ????var?obj=document.getElementById(id);?//?获取元素对象值 ??
- ????var?dW=obj.clientWidth;?//?获取元素宽度 ??
- ????var?dH=obj.clientHeight;?//?获取元素高度 ??
- ????//var?oTop=obj.offsetTop; ??
- ????//var?oLeft=obj.offsetLeft; ??
- ???? ??
- ????obj.onmouseover=function(){?//?鼠标移入 ??
- ????????this.style.width=dW*x+“px”;?//?横向缩放 ??
- ????????this.style.height=dH*y+“px”;?//?纵向缩放 ??
- ????????this.style.backgroundColor=“#f00”;?//?设置调试背景 ??
- ????????this.style.zIndex=1;?//?设置z轴优先 ??
- ????} ??
- ????obj.onmouseout=function(){?//?鼠标移出,设回默认值 ??
- ????????this.style.width=“”; ??
- ????????this.style.height=“”; ??
- ????????this.style.padding=“”; ??
- ????????this.style.backgroundColor=“”; ??
- ????????this.style.zIndex=“”; ??
- ????} ??
- } ??
- zoom(“first”,1.25,1.25); ??
- zoom(“second”,1.25,1.25); ??
- zoom(“third”,1.25,1.25);??
最新评论
写的挺好的
有没有兴趣翻译 impatient js? https://exploringjs.com/impatient-js/index.html
Flexbox playground is so great!
感谢总结。
awesome!
这个好像很早就看到类似的文章了
比其他的教程好太多了
柯理化讲的好模糊…没懂