2008年阿里巴巴前端开发工程师面试题解 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Sep 17

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

1.用CSS实现布局
让我们一起来做一个页面
首先,我们需要一个布局。
请使用CSS控制3个div,实现如下图的布局。
Highslide JS

这题不难,在平时项目开发过程中也经常会碰到:

主要考虑几个问题: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:http://www.css88.com/demo/alibaba/alibaba1.html
由于我们的用户群喜欢放大看页面
于是我们给上一题的布局做一次优化。
当鼠标略过某个区块的时候,该区块会放大25%,
并且其他的区块仍然固定不动。
Highslide JS
提示:
也许,我们其他的布局也会用到这个放大的效果哦。
可以使用任何开源代码,包括曾经你自己写的。

关键字:
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);  

查看demo:http://www.css88.com/demo/alibaba/alibaba2.html


▲返回顶部
Last modified by tommyhu on2009/09/17 10:24

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot