2008年阿里巴巴前端开发工程师面试题解

阿里巴巴面试题出自: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代码
  1. div{background:#CCCCCC;} ??
  2. #first{float:left;width:100px;?height:150px} ??
  3. #second{clear:left;float:left;margin-top:10px;width:100px;height:150px}??
  4. #third{zoom:1;?width:200px;margin-left:110px;_margin-left:107px;?height:310px}??

?

XML/HTML代码
  1. <div?id=“first”></div>??
  2. <div?id=“second”></div>??
  3. <div?id=“third”></div>??

?

查看demo:https://www.html.cn/demo/alibaba/alibaba1.html

2.用javascript优化布局

由于我们的用户群喜欢放大看页面
于是我们给上一题的布局做一次优化。
当鼠标略过某个区块的时候,该区块会放大25%,
并且其他的区块仍然固定不动。

提示:
也许,我们其他的布局也会用到这个放大的效果哦。
可以使用任何开源代码,包括曾经你自己写的。

关键字:
javascript、封装、复用
?

惭愧啊,用上边那个布局我怎么也没把它优化出来,硬这头皮用绝对定位改了布局;

所以样式改成了这样

CSS代码
  1. body{?margin:0;?padding:0} ??
  2. div{background:#CCCCCC;?position:absolute} ??
  3. #first{width:100px;?height:150px} ??
  4. #second{top:160px;width:100px;height:150px} ??
  5. #third{?width:200px;?height:310px;?left:110px}??

javascript要考考虑封装、复用
?

?

JavaScript代码
  1. function?zoom(id,x,y){?//?设置缩放函数参数:容器id、横向缩放倍数、纵向缩放倍数(等比例缩放时也可以设定一个参数) ??
  2. ????var?obj=document.getElementById(id);?//?获取元素对象值 ??
  3. ????var?dW=obj.clientWidth;?//?获取元素宽度 ??
  4. ????var?dH=obj.clientHeight;?//?获取元素高度 ??
  5. ????//var?oTop=obj.offsetTop; ??
  6. ????//var?oLeft=obj.offsetLeft; ??
  7. ???? ??
  8. ????obj.onmouseover=function(){?//?鼠标移入 ??
  9. ????????this.style.width=dW*x+“px”;?//?横向缩放 ??
  10. ????????this.style.height=dH*y+“px”;?//?纵向缩放 ??
  11. ????????this.style.backgroundColor=“#f00”;?//?设置调试背景 ??
  12. ????????this.style.zIndex=1;?//?设置z轴优先 ??
  13. ????} ??
  14. ????obj.onmouseout=function(){?//?鼠标移出,设回默认值 ??
  15. ????????this.style.width=“”; ??
  16. ????????this.style.height=“”; ??
  17. ????????this.style.padding=“”; ??
  18. ????????this.style.backgroundColor=“”; ??
  19. ????????this.style.zIndex=“”; ??
  20. ????} ??
  21. } ??
  22. zoom(“first”,1.25,1.25); ??
  23. zoom(“second”,1.25,1.25); ??
  24. zoom(“third”,1.25,1.25);??

查看demo:https://www.html.cn/demo/alibaba/alibaba2.html

赞(0) 打赏
未经允许不得转载:WEB前端开发 » 2008年阿里巴巴前端开发工程师面试题解

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏