阿里巴巴_一道备受关注的前端开发笔试题


最近发现阿里巴巴的一道Web前端开发面试题,共分三部分:CSS部分,JavaScript部分,紧急处理部分,分享给大家做个参考~


第一部分:用CSS实现布局

让我们一起来做一个页面

首先,我们需要一个布局。

请使用CSS控制3个div,实现如下图的布局。

e65e0e34544aa20a251f14a2.jpg 

第二部分:用javascript优化布局

由于我们的用户群喜欢放大看页面

于是我们给上一题的布局做一次优化。

当鼠标略过某个区块的时候,该区块会放大25%,

并且其他的区块仍然固定不动。

78662dd02d1862cba0ec9cc6.jpg 

提示:

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

关键字:javascript、封装、复用

答案部分

第一题:主要考虑几个问题:1. IE6 的 3 像素 BUG;2. 清楚浮动;

CSS代码:

<pre name="code" class="html">*{ margin:0px; padding:0px;}  
#first{float:left; margin-left:-310px;width:100px; height:150px;background:#f33; }      
#second{float:left;margin-left:-310px;margin-top:160px;width:100px;height:150px;background:#ff0;}
div.container{ float:left; }     
#third{ margin-left:110px;  width:200px;height:310px; background:#CC0000; }  

 

XML/HTML代码

<div class="container"><div id="third"></div></div>   
<div id="second"></div> 
<div id="first"></div>


 第二题:用javascript优化布局

提示:

也许,我们其他的布局也会用到这个放大的效果哦。

可以使用任何开源代码,包括曾经你自己写的。

关键字:javascript、封装、复用

javascript 要考虑封装、复用

function zoom(id,x,y){ // 设置缩放函数参数:容器id、横向缩放倍数、纵向缩放倍数(等比例缩放时也可以设定一个参数)    
	var obj=document.getElementById(id); // 获取元素对象值    
    var dW=obj.clientWidth; // 获取元素宽度    
    var dH=obj.clientHeight; // 获取元素高度      
        
    obj.οnmοuseοver=function(){ // 鼠标移入 
		this.style.postion = "absolute";   
        this.style.width=dW*x+"px"; // 横向缩放    
        this.style.height=dH*y+"px"; // 纵向缩放    
        this.style.backgroundColor="#f00"; // 设置调试背景    
        this.style.zIndex=3; // 设置z轴优先 
		if( /third/.test(id))
		{
			document.getElementById("first").style.marginLeft = 
				-310 - dW*(y-1) +"px";
			document.getElementById("second").style.marginLeft = 
				-310 - dW*(y-1) +"px";
		}   
    }    
    obj.οnmοuseοut=function(){ // 鼠标移出,设回默认值    
        this.style.width="";    
        this.style.height="";    
        this.style.padding="";    
        this.style.backgroundColor="";    
        this.style.zIndex=""; 
		
		if( /third/.test(id))
		{
			document.getElementById("first").style.marginLeft = '';
			document.getElementById("second").style.marginLeft = '';
		}   
    }    
}  

window.onload = function(){  
	zoom("first",1.25,1.25);    
	zoom("second",1.25,1.25);    
	zoom("third",1.25,1.25);  
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值