简明现代魔法 -> CSS层叠样式表 -> 关于CSS布局的前端面试题

关于CSS布局的前端面试题

2010-06-01

用 CSS 实现布局

让我们一起来做一个页面。首先,我们需要一个布局。

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

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

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

代码:

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> 

用 javascript 优化布局

由于我们的用户群喜欢放大看页面,于是我们给上一题的布局做一次优化。

当鼠标略过某个区块的时候,该区块会放大25%,并且其他的区块仍然固定不动。

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

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

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

所以样式改成了这样:

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);   
随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们