1.用CSS实现布局
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>2008年阿里巴巴前端开发工程师面试题解</title> <style type="text/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} --> </style> </head> <body> <!--demo开始--> <div id="first"></div> <div id="second"></div> <div id="third"></div> <!--demo结束--> </body> </html>
提示:你可以先修改部分代码再运行。
2.用javascript优化布局
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>2008年阿里巴巴前端开发工程师面试题解</title> <style type="text/css"> <!-- body{ margin:0; padding:0} .demo{ position:relative; height:500px; margin-top:10px} #first,#second,#third{background:#CCCCCC; position:absolute} #first{width:100px; height:150px} #second{top:160px;width:100px;height:150px} #third{ width:200px; height:310px; left:110px} --> </style> </head> <body> <!--demo开始--> <div class="demo"> <div id="first"></div> <div id="second"></div> <div id="third"></div> </div> <script type="text/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.border="1px solid #000" this.style.zIndex=1; // 设置z轴优先 } obj.onmouseout=function(){ // 鼠标移出,设回默认值 this.style.width=""; this.style.height=""; this.style.padding=""; this.style.backgroundColor=""; this.style.border=""; this.style.zIndex=""; } } zoom("first",1.25,1.25); zoom("second",1.25,1.25); zoom("third",1.25,1.25); </script> </body> </html>
原题:http://job.aliued.com/race/chooseRace/wd.html。
第二题没你想的那么简单的。你这样答就不会进了。 你没发现字也在放大吗?好好想想,这个CSS属性老外很爱用的。就算里面有图片也能放大的。 还有一个建议。如果你的代码用jQuery之类的来写。只要一个animate就够了。原生的还是复杂了点不过没有库小巧。
[回复]
hemin 回复:十二月 28th, 2009 at 9:22 上午
@Kiya, 1.你确定字放大了? 2.你确定用CSS属性可以很好的在IE6下可以兼容性与开展性? 3.面试题难道去用框架,不用原始JS来实现?兄弟这是面试题,是用来靠你JS基础的
一题是考你CSS布局基础。 二题是考你JS基础的。
Ant~ 回复:三月 29th, 2010 at 5:10 下午
@hemin, 貌似字确实放大了……很明显…… 另外,也不是说面试题就一定不能用框架,人家都说了“可以使用任何开源代码”…… 当然,能自己写更好!
嘿嘿嘿…路过一下下…这个写法不是很好….不灵活…
第一题完全可以不用hack 并且比你这个更好 阿里的这个题目都出了这么久了 ~
1,考虑下ie6造成bug的原因是什么? 2,这个页面的主体部分在哪?该让用户先看到哪一块? 如果考虑了第二点那么也不存在用hack来解决ie6的bug了~
第二题 是继续对第一题的改造,貌似按照原题的意思 你题意也理解错了,题目很明显的要求是放大25%。还有为什么是通过获取的clientHeight 去计算赋值给height? 你确定clientHeight就一定等同于height吗?为什么不对同一个对象属性进行操作 获取最终样式高度计算 ?还有既然是对同样的对象调用同样的方法~ 可以采用each这样的方法 更加优越~
不错,这样的面试题很经典!
Your comment
增大 | 减小输入框高度: + | –
名字&Name (required)*
邮箱&Mail (will not be published) (required)*
网址&Website
第二题没你想的那么简单的。你这样答就不会进了。
你没发现字也在放大吗?好好想想,这个CSS属性老外很爱用的。就算里面有图片也能放大的。
还有一个建议。如果你的代码用jQuery之类的来写。只要一个animate就够了。原生的还是复杂了点不过没有库小巧。
[回复]
hemin 回复:
十二月 28th, 2009 at 9:22 上午
@Kiya,
1.你确定字放大了?
2.你确定用CSS属性可以很好的在IE6下可以兼容性与开展性?
3.面试题难道去用框架,不用原始JS来实现?兄弟这是面试题,是用来靠你JS基础的
一题是考你CSS布局基础。
二题是考你JS基础的。
[回复]
Ant~ 回复:
三月 29th, 2010 at 5:10 下午
@hemin,
貌似字确实放大了……很明显……
另外,也不是说面试题就一定不能用框架,人家都说了“可以使用任何开源代码”……
当然,能自己写更好!
[回复]
嘿嘿嘿…路过一下下…这个写法不是很好….不灵活…
[回复]
第一题完全可以不用hack 并且比你这个更好 阿里的这个题目都出了这么久了 ~
1,考虑下ie6造成bug的原因是什么?
2,这个页面的主体部分在哪?该让用户先看到哪一块?
如果考虑了第二点那么也不存在用hack来解决ie6的bug了~
第二题 是继续对第一题的改造,貌似按照原题的意思 你题意也理解错了,题目很明显的要求是放大25%。还有为什么是通过获取的clientHeight 去计算赋值给height? 你确定clientHeight就一定等同于height吗?为什么不对同一个对象属性进行操作 获取最终样式高度计算 ?还有既然是对同样的对象调用同样的方法~ 可以采用each这样的方法 更加优越~
[回复]
不错,这样的面试题很经典!
[回复]