前言
最近在一个论坛上发现阿里巴巴的Web前端开发面试题,共分三部分:CSS部分,JavaScript部分,紧急处理部分,分享给大家做个参考~
第一部分:用CSS实现布局
让我们一起来做一个页面
首先,我们需要一个布局。
请使用CSS控制3个div,实现如下图的布局
第二部分:用javascript优化布局
由于我们的用户群喜欢放大看页面,于是我们给上一题的布局做一次优化。
当鼠标略过某个区块的时候,该区块会放大25%,并且其他的区块仍然固定不动
提示:
也许,我们其他的布局也会用到这个放大的效果哦。
可以使用任何开源代码,包括曾经你自己写的。
关键字:
javascript、封装、复用
第三部分:处理紧急情况
好了,我们的页面完成了。于是我们将页面发布上网。
突然,晴天霹雳,页面无法访问了,这时候,你会怎么做?
有兴趣的同学尝试做一下,网上也有参考答案,给大家转载过来~
提供参考答案的这位说这题不难,在平时项目开发过程中也经常会碰到:
第一题:主要考虑几个问题:1. IE6 的 3 像素 BUG;2. 清楚浮动;
CSS代码:
1 2 3 4 |
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代码:
1 2 3 |
<div id="first"></div> <div id="second"></div> <div id="third"></div> |
第二题:用javascript优化布局
提示:
也许,我们其他的布局也会用到这个放大的效果哦。可以使用任何开源代码,包括曾经你自己写的。
关键字:javascript、封装、复用
惭愧啊,用上边那个布局我怎么也没把它优化出来,硬这头皮用绝对定位改了布局;所以样式改成了这样:
1 2 3 4 5 |
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 要考虑封装、复用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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); |
此文章发表于2011-9-16,由轩枫阁转载自w3cfuns
继续支持没话说~ 博主真强
这个能用绝对定位吗?
这种布局,大小高度肯定是固定不变的,所以我认为,绝对定位绝对是可行的
这种布局,大小高度肯定是固定不变的,所以我认为,绝对定位绝对是可行的