第一部分:用CSS实现布局

让我们一起来做一个页面

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

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

第二部分:用javascript优化布局

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

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

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

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

提示:

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

关键字:javascript、封装、复用

第三部分:处理紧急情况

好了,我们的页面完成了。

于是我们将页面发布上网。

突然,晴天霹雳,页面无法访问了,这时候,你会怎么做?

面试题到此为止,你是否能够对答如流呢,仔细想一下,然后在翻页看一下答案。

答案部分

第一题:主要考虑几个问题: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>

 第二题:用javascript优化布局

提示:

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

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

关键字: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 要考虑封装、复用

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);

第三题也许是JS代码没有放在页面的后面,加载速度慢尚未显示出来。或者是页面地址出错了。

Web前端开发面试题赋答案的更多相关文章

  1. web前端开发面试题(答案)

    1.xhtml和html有什么区别? HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:XHTML 元素必须被正确地嵌套.XHTML 元素必须被关闭.标签名必须 ...

  2. web前端开发面试题(附答案)-3

    1.用纯css创建一个三角形的原理: .demo{ width:0; height: 0; border: 5px solid transparent; border-left-color: red; ...

  3. web前端开发面试题(附答案)-1

    1.浏览器中输入url到网页显示,整个过程发生了什么 域名解析 发起tcp三次握手 建立tcp连接之后发起htttp请求 服务器端响应http请求,浏览器得到html代码 浏览器器解析html代码,并 ...

  4. web前端开发面试题(附答案)-2

    1.label是什么标签,有什么作用?和for属性使用的作用? label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上. label 元素不会向用户呈现 ...

  5. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

  6. 【编码题篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题

    编写一个方法 求一个字符串的字节长度假设:一个英文字符占用一个字节,一个中文字符占用两个字节 function GetBytes(str){ var len = str.length; var byt ...

  7. web前端开发面试题(Vue.js)

    1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么获取传过来的动态参数?  ...

  8. Web前端开发面试题

    1. 以下的代码有问题吗?如果有你觉着应该如何修改? for(int i=0; i<list.size(); i++) {  .....  .....  if(...)  {   list.re ...

  9. 最全的前端开发面试题及答案(js,css等等)

    点击链接 https://github.com/HerbertKarajan/Fe-Interview-questions 我会不断的更新...... 若想自己留着,可以fork一下. 如果觉得不错, ...

随机推荐

  1. Php RSS

    RSS 聚合最近非常流行,因此至少对 RSS 及其工作方式有所了解是一名 PHP 开发人员的迫切需要.本文介绍了 RSS 基础知识.RSS 众多用途中的一些用途.如何使用 PHP 从数据库创建 RSS ...

  2. 配置CAS错误No Certificate file specified or invalid file format

    配置tomcat证书 keystore文件后启动一直报错:(tomcat版本:apache-tomcat-6.0.43) tomcat配置: <Connector port="8443 ...

  3. 若后台的Activity被系统回收...

    你后台的Activity被系统回收怎么办?如果后台的Activity由于某种原因被系统回收了,如何在被系统回收之前保存当前状态? 除了在栈顶的Activity,其他的Activity都有可能在内存不足 ...

  4. Win7下Solr4.10.1和TomCat8的安装

    1.系统为win7 64位系统,安装有wamp的环境,我的所有网站放在 d:\webserver下,域名指向该目录下的子目录: 2.安装TomCat8到 D:\Tomcat 8.0: 3.在 d:\w ...

  5. php 编码规范(1)

    1. 包含尽量不要使用短标签例如 <? #coding ?> 2. 忽略结束标签,防止其他字符或者空格影响到代码 <?php$foo = 'foo'; 如果不开启压缩或者缓存输出时候 ...

  6. Android 拨号器的实现 [视频1]

    Android自带了拨号功能和拨号器 这个是在一个视频里看到的    想写下来记录一下 下面放源代码 /hehe/res/layout/activity_main.xml <RelativeLa ...

  7. 像素转换mm

    public static double MillimetersToPixelsWidth(double length) //length是毫米,1厘米=10毫米 { System.Windows.F ...

  8. 基于verilog的FPGA编程经验总结(XILINX ISE工具)

    1.用ISE仿真的时候.所用变量一定要初始化. ISE默认初始量为"XXXXX", 而Quarters是默认为"00000"的, 其实实际上, 下到FPGA里后 ...

  9. Android Recovery的汉化 显示中文

    Android Recovery的汉化 显示中文,有需要的朋友可以参考下. 首先下载开源的recovery源码,地址为https://github.com/xiaolu/android_bootabl ...

  10. Altium Designer 等长线&&蛇形线

    Altium Designer 里面怎么画等长线 (1)一般是将走线布完后,新建一个class. Design -> Classes 如上图添加完后可以点击close. (2)快捷键 T + R ...