前端面试题
HTML+CSS
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;
2.xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
Css盒模型:内容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高
7.前端页面有哪三层构成,分别是什么?作用是什么?
结构层 Html 表示层 CSS 行为层 js
8.css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}
9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
10.写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display
2.3像素问题 使用float引起的 使用dislpay:inline -3px
3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4.Ie z-index问题 给父级添加position:relative
5.Png 透明 使用js代码 改
6.Min-height 最小高度 !Important 解决’
7.select 在ie6下遮盖 使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
11.标签上title与alt属性的区别是什么?
Alt 当图片不显示是 用文字代表。
Title 为该属性提供信息
12.描述css reset的作用和用途。
Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一
13.解释css sprites,如何使用。
Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量
14.浏览器标准模式和怪异模式之间的区别是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可显示为什么模式
15.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
16.什么是语义化的HTML?
直观的认识标签 对于搜索引擎的抓取有好处
17.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)
Javascript
1.javascript的typeof返回哪些数据类型
Object number function boolean underfind
2.例举3种强制类型转换和2种隐式类型转换?
强制(parseInt,parseFloat,number)
隐式(== - ===)
3.split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
4.数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除
5.事件绑定和普通事件有什么区别
6.IE和DOM事件流的区别
1.执行顺序不一样、
2.参数不一样
3.事件加不加on
4.this指向问题
7.IE和标准下有哪些兼容性的写法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
8.ajax请求的时候get 和post方式的区别
一个在url后面 一个放在虚拟载体里面
有大小限制
安全问题
应用不同 一个是论坛等只需要请求的,一个是类似修改密码的
9.call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax请求时,如何解释json数据
使用eval parse 鉴于安全性考虑 使用parse更靠谱
11.b继承a的方法
12.写一个获取非行间样式的函数
- function getStyle(obj,attr,value)
- {
- if(!value)
- {
- if(obj.currentStyle)
- {
- return obj.currentStyle(attr)
- }
- else
- {
- obj.getComputedStyle(attr,false)
- }
- }
- else
- {
- obj.style[attr]=value
- }
- }
13.事件委托是什么
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
14.闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
http://blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)
15.如何阻止事件冒泡和默认事件
canceBubble return false
16.添加 删除 替换 插入到某个接点的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild
17.解释jsonp的原理,以及为什么不是真正的ajax
动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作
18.javascript的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的
宿主为浏览器自带的document,window 等
19.document load 和document ready的区别
Document.onload 是在结构和样式加载完才执行js
Document.ready原生种没有这个方法,jquery中有 $().ready(function)
20.”==”和“===”的不同
前者会自动转换类型
后者不会
21.javascript的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合
22.编写一个数组去重的方法
- function oSort(arr)
- {
- var result ={};
- var newArr=[];
- for(var i=0;i
- {
- if(!result[arr[i]])
- {
- newArr.push(arr[i])
- result[arr[i]]=1
- }
- }
- return newArr
- }
23.排序算法
- 快速排序function oSort(arr)
- {
- if(arr.length<=1)
- {
- return arr
- }
- var left=[];
- var right=[];
- var oNum = Math.floor(arr.length/2);
- var oNumVode = arr.splice(oNum,1);
- for(var i=0;i
- {
- if(arr[i]
- {
- left.push(arr[i])
- }
- else
- {
- right.push(arr[i])
- }
- }
- return oSort(left).concat([oNumVode],oSort(right))
- }
- 冒泡排序 var array = [5, 4, 3, 2, 1];
- var temp = 0;
- for (var i = 0; i < array.length; i++)
- {
- for (var j = 0; j < array.length - i; j++)
- {
- if (array[j] > array[j + 1])
- {
- temp = array[j + 1];
- array[j + 1] = array[j];
- array[j] = temp;
- }
- }
- }
- 聚美优品面试题
- CSS
1. overflow-x 属于 CSS2 还是 CSS3
2. 请列举几种可以清除浮动的方法(至少两种)
3. display:none 和 visibility:hidden 的区别是什么
4. 请缩写以下代码:
.box {
background-position: 10px 20px;
background-repeat: no-repeat;
background-attachment: fixed;
background-image: url(box.png);
}
5. 如何让一段文本中的所有英文单词的首字母大写
Javascript
1. 请解释一下什么是闭包
2. call 和 apply 的区别是什么
3. 如何使用原生 Javascript 代码深度克隆一个对象(注意区分对象类型)
4. jQuery 中 $('.class') 和 $('div.class') 在 IE 8 下哪个效率更高,请解释原因
HTML
1. 以下哪个不是 HTML5 的新标签:
a. <article>
b. <section>
c. <address>
d. <time>
2. 正确使用 HTML 和 CSS 实现以下效果(中间方框部分表示图片,右侧为文字列表。尽量不要
使用 float 属性):
简答
1. jumei.com 和 weibo.com 完整载入后,html 代码各有多少 KB
2. 最近关注了哪些前端相关的技术/博客/论坛,简述心得和看法
JavaScript 编程题
1、实现输出document对象中所有成员的名称和类型;
2、如何获得一个DOM元素的绝对位置?(获取元素位置,不依赖框架)
3、如何利用JS生成一个table?
4、实现预加载一张图片,加载完成后显示在网页中并设定其高度为50px;宽度为50px;
5、假设有一个4行td的table,将table里面td顺序颠倒;
6、模拟一个HashTable类,包含有add、remove、contains、length方法;
7、Ajax读取一个xml文档并进行解析的实例;
8、js如何实现面向对象和继承机制
9、Js模块的封装方法,比如怎样实现私有变量,不能直接赋值,只能通过共有方法访问。
10、对闭包的理解,闭包的好处和坏处;
11、对this指针的理解,可以列举几种使用情况;
12、对JS中函数绑定的理解,函数绑定可以使用哪两个函数,函数绑定一般使用在什么情况下,这两个函数的区别是什么?
13、JQuery的特点。
14、简述Ajax异步机制,Ajax有哪些的好处和弊端,介绍一下Ajax异步请求的原理和过程,Ajax是否可以跨域访问数据,如何解决跨域访问?
页面布局HTML/CSS
1、<img>标签上title与alt属性的区别是什么?
2、分别写出以下几个HTML标签:文字加粗、下标、居中、字体
3、写出一个文本输入框,属性为只读,最大输入字符为20个
4、css左边固定,右边可变的布局实现方法,如果要求在源码顺序中左边必须在前,如何实现
5、图片和文字一起如何通过css实现居中
6、请简述一下css中的样式继承和css的选择器?
7、请简述一下各个选择器之间的优先级
8、在同等优先级的情况下如何选择样式
9、盒子模型,请简述一下盒子模型
10、如何使一个div的背景图像距这个Div的顶部10像素,左边15像素,且不重复?
11、如何增加某一个链接的可点击面积,而下划线仍然与链接一样长?如,鼠标移至td空白区域后下划线也能消失,点击后即相当于点击了链接文字
12、一个元素的上边框为红色,其他边框黑色,里面文字的颜色是蓝色;
13、打开(隐藏)、关闭(显示)一个对象,style的display以及visibility的参数是什么?
14、用CSS和Div实现3列或2列的页面布局,并说明与table布局相比有哪些优缺点
15、定宽网页两列内容布局,试写出你所知道的几种布局代码(HTML+css),再简单描述下各种布局的优缺点。
HTML+CSS
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外 链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维 护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;
2.xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
Css盒模型:内容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高
7.前端页面有哪三层构成,分别是什么?作用是什么?
结构层 Html 表示层 CSS 行为层 js
8.css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}
9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
10.写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display
2.3像素问题 使用float引起的 使用dislpay:inline -3px
3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4.Ie z-index问题 给父级添加position:relative
5.Png 透明 使用js代码 改
6.Min-height 最小高度 !Important 解决’
7.select 在ie6下遮盖 使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
11.标签上title与alt属性的区别是什么?
Alt 当图片不显示是 用文字代表。
Title 为该属性提供信息
12.描述css reset的作用和用途。
Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一
13.解释css sprites,如何使用。
Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量
14.浏览器标准模式和怪异模式之间的区别是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可显示为什么模式
15.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
16.什么是语义化的HTML?
直观的认识标签 对于搜索引擎的抓取有好处
17.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)
Javascript
1.javascript的typeof返回哪些数据类型
Object number function boolean underfind
2.例举3种强制类型转换和2种隐式类型转换?
强制(parseInt,parseFloat,number)
隐式(== – ===)
3.split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
4.数组方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部删除
Unshift()头部添加 shift()头部删除
5.事件绑定和普通事件有什么区别
6.IE和DOM事件流的区别
1.执行顺序不一样、
2.参数不一样
3.事件加不加on
4.this指向问题
7.IE和标准下有哪些兼容性的写法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target
8.ajax请求的时候get 和post方式的区别
一个在url后面 一个放在虚拟载体里面
有大小限制
安全问题
应用不同 一个是论坛等只需要请求的,一个是类似修改密码的
9.call和apply的区别
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax请求时,如何解释json数据
使用eval parse 鉴于安全性考虑 使用parse更靠谱
11.b继承a的方法
12.写一个获取非行间样式的函数
function getStyle(obj,attr,value)
{
if(!value)
{
if(obj.currentStyle)
{
return obj.currentStyle(attr)
}
else
{
obj.getComputedStyle(attr,false)
}
}
else
{
obj.style[attr]=value
}
}
13.事件委托是什么
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
http://www.webasily.com/?p=78 例子可见此链接
14.闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
http://blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)
15.如何阻止事件冒泡和默认事件
canceBubble return false
16.添加 删除 替换 插入到某个接点的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild
17.解释jsonp的原理,以及为什么不是真正的ajax
动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作
18.javascript的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的
宿主为浏览器自带的document,window 等
19.document load 和document ready的区别
Document.onload 是在结构和样式加载完才执行js
Document.ready原生种没有这个方法,jquery中有 $().ready(function)
20.”==”和“===”的不同
前者会自动转换类型
后者不会
21.javascript的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合
22.编写一个数组去重的方法
function oSort(arr)
{
var result ={};
var newArr=[];
for(var i=0;i<arr.length;i++)
{
if(!result[arr])
{
newArr.push(arr)
result[arr]=1
}
}
return newArr
}
闭包和局部变量
function say667() {
// Local variable that ends up within closure
var num = 666;
var sayAlert = function() { alert(num); }
num++;
return sayAlert;
}
var sayAlert = say667();
sayAlert()
输出结果:667
HTML相关
- <!DOCTYPE>标签的定义与用法。
- 块级元素和行内元素都有哪些?
- 你真的了解HTML吗? 雅虎面试题 把前面黄底那段拿去搜索下就知道了(曾在某浪公司面试的时候被问到过,确实是很好的问题)。
- 介绍所知道的CSS hack技巧(如:_, *, +, \9, !important 之类)。
- 介绍CSS盒模型。
- CSS层叠是什么?介绍一下。
- 都知道哪些CSS浏览器兼容性问题。
- 有时会被问到些刁钻点的题,比如position值都有哪些,CSS3都有哪些新内容...
- HTTP协议的状态消息都有哪些?(如200、302对应的描述)
- AJAX是什么? AJAX的交互模型(流程)? AJAX跨域的解决办法?
- 同步和异步的区别?
- 简述JavaScript封装。
- JavaScript继承有哪两种形式形式,进行描述。
- 什么是闭包?以下代码点击<p>会输出什么?为什么?能大概说明白的话继续问能想出几种解决办法。
CSS相关
JavaScript基础相关
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>闭包演示</title>
<style type="text/css">
p {background:gold;}
</style>
<script type="text/javascript">
function init() {
var pAry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = function() {
alert(i);
}
}
}
</script>
</head>
<body onload="init();">
<p>产品 0</p>
<p>产品 1</p>
<p>产品 2</p>
<p>产品 3</p>
<p>产品 4</p>
</body>
</html>
- 在JS中this关键字的使用场合和用法(如在构造函数中、setTimeout中等)。
- 简述下cookie的操作,还有cookie的属性都知道哪些。
- IE与FF的JS兼容性都知道哪些。
- DOM操作 - 怎样添加、移除、移动、复制、创建和查找节点(这个问题真心是基础题,一般不会问)。
- jQuery源码是否尝试去读过?说说基本的架构或者 jQuery.fn.init 中都做了哪些判断。
- 都知道哪些不好的jQuery书写方式。
- Sizzle是否有读过?
jQuery相关
其它相关的加分项:
- 都使用和了解过哪些编辑器?都使用和了解过哪些日常工具?
- 都知道有哪些浏览器内核?开发过的项目都兼容哪些浏览器?
- 国内外的JS牛人都知道哪些?
- 瀑布流布局或者流式布局是否有了解
- 正则表达式有系统学习过吗(看书或网上教程)?有的话就问问简单点的邮箱验证、URL验证, 或者问问 贪婪匹配与懒惰匹配 的理论知识。
- Node.js是否有过尝试?到什么程度?说说个人理解的看法?
- HTML5都有哪些新的JS API?
- 前端优化知识都知道哪些?
- 基础算法题(如快速排序,能否一两句说说重要的核心原理或者数组消重等)。
- 是否有接触过或者了解过重构。
WEB前端开发工程师面试题
[HTML && CSS]
1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
doctype声明指示将使用哪一个文档类型定义(Document Type Definition DTD)来编写标记,DTD基本上就是个详细描述标记规则和语法的页面。
doctype有两个重要的用途,一个将提醒用户代理和验证程序该文档使用什么DTD,另一个是提醒浏览器按照标准模式而不是怪异模式来解释文档。如果包含了doctype ,那么浏览器会试图按照严格方式来解释标记,如果没有doctype,就会触发怪异模式,按照旧的不正确的方式来解释标记。
2:行内元素有哪些?块级元素有哪些?CSS的盒模型?
行内元素:<a> <img > <input > <span>
块级元素:<p> <h1>-<h6> <blockquote> <div> <ul> <li> <ol> <dl> <table> <form> <em> <strong> <input>
盒模型:width border padding margin
3.CSS引入的方式有哪些? link和@import的区别是?
外联式:<link href="url" rel="stylesheet" tyle="text/css">
内联式:<script type="text/css"></script>
嵌入式:<input type="" style="">
4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
5:前端页面有哪三层构成,分别是什么?作用是什么?
结构层,表现层,行为层
6:css的基本语句构成是?
8:你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
9.如何居中一个浮动元素?
10.有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!
11.你怎么来实现下面这个设计图,主要讲述思路 (效果图省略)
13:如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
14:你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
[Javascript]
1:js是什么,js和html 的开发如何结合?
2.怎样添加、移除、移动、复制、创建和查找节点
3.怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别
4.面向对象编程:b怎么继承a
5.看看下面alert的结果是什么
view sourceprint?1.function b(x, y, a) {
.arguments[2] = 10;
.alert(a);
}
b(1, 2, 3);
如果函数体改成下面,结果又会是什么?
a = 10;
alert(arguments[2] );
6.请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象
var obj = parseQueryString(url);
alert(obj.key0) // 输出0
7.ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
8.什么是闭包?下面这个ul,如何点击每一列的时候alert其index?
<ul id=”test”>
<li>这是第一条</li><li>这是第二条</li><li>这是第三条</li>
</ul>
9.最近看的一篇Javascript的文章是?
10.常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
11.说说YSlow(可以详细一点)
一、填空题(40分)
1、目前常用的WEB标准静态页面语言是__ ______。(4分)html
2、改变元素的外边距用________,改变元素的内填充用________。(6分)margin padding
3、在Table中,TR是________,TD是________。(6分)行列
4、如果给一行两列的表格(table)定义高度样式,在________标签中定义最合理,最能减少代码的臃肿。(5分)css样式也有说tr
5、对ul li的样式设成无,应该是用什么属性________。(6分)list-styl-type:none;
6、在新窗口打开链接的方法是________。(4分)target=_bank
7、Color:#666666;可缩写为________。(2分)color:#666
8、合理的页面布局中常听过结构与表现分离,那么结构是________,表现是________。(9分)div css
二、选择题(20分)
1、在下面的XHTML中,哪个可以正确地标记折行?(5分)
A:<br /> B:<break/> C:<br>
2、下列哪些是格式良好的XHTML?(5分)
A:<p>A <b><i>short</b></i> paragraph</p>
B:<p>A <b><i>short</i></b> paragraph</p>
C:<p>A <b><i>short</i></b> paragraph
3、在以下的HTML中,哪个是正确引用外部样式表的方法?(5分)
A:<style src="mystyle.css">
B:<link rel="stylesheet" type="text/css" href="mystyle.css">
C:<stylesheet>mystyle.css</stylesheet>
4、在HTML文档中,引用外部样式表的正确位置是?(5分)
A:文档的末尾 B:文档的顶部
C:<body>部分D:<head>部分
三、问答题(40分)
1、请写出超链接的顺序或者你在初始样式中的链接方法。(要求默认无下线,鼠标经过有下划线)(10分)
L-V-H-A
a:link { line-style:none;}
a:hover { line-style:underlin;}
或者
a:link{text-decoration:none;}
a:hover{text-decoration:underline;}
2、当float和margin同时使用时,IE6的双倍边距BUG如何解决?(6分)
display:inline;或者margin-right:-3px;
3、为什么无法定义1px左右高度的容器?(7分)
好像是有个默认高度,大约是10px这样,参考答案
4、Firefox中标签的居中问题的解决方法?(5分),
*{margin:0px auto;}
5、请写出XHTML和CSS如何注释?(5分),
<div><!-- 注释内容-->...</div>
.class{/* 注释内容*/...}
6、请以缩写方法写出1px直线(实线)灰色(任意灰色代码值),上面无边框的矩形边框样式。(7分)
.***{border:1px solid #000;border-top:0px;}或者border:1px solid #ccc;border-top:none;
为什么无法定义1px左右高度的容器?
IE6有默认行高
[HTML && CSS]
1. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
Doctype声明位于文档中的最前面的位置,处于标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。该标签可声明三种DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。
当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式(quirks mode)。在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器(比如Microsoft IE 4和Netscape Navigator 4)的行为以防止老站点无法工作。
浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML 4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。
2. 行内元素有哪些?块级元素有哪些?CSS的盒模型?
行内元素有:a b span I b em img input select strong
块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p
盒模型:margin border padding width
3. CSS引入的方式有哪些? link和@import的区别是?
1. 使用 LINK标签
将样式规则写在.css的样式文件中,再以<link>标签引入。
<link rel=stylesheet type="text/css" href="example.css">
2. 使用@import引入
跟link方法很像,但必须放在<STYLE>...</STYLE> 中
<STYLE TYPE="text/css">
<!--
@import url(css/example.css);
-->
</STYLE>
3. 使用STYLE标签
将样式规则写在<STYLE>...</STYLE>标签之中。
<STYLE TYPE="text/css">
<!--
body {color: #666;background: #f0f0f0;font-size: 12px;}
td,p {color:#c00;font-size: 12px;}
-->
</STYLE>
4. 使用STYLE属性
将STYLE属性直接加在个别的元件标签里,<元件(标签) STYLE="性质(属性)1: 设定值1; 性质(属性)2: 设定值2; ...}
5. 使用<span></span>标记引入样式
<span style="font:12px/20px #000000;">cnwebshow.com</span>
两者区别:加载顺序的差别。当一个页面被加载的时候,link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。@import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,如:
main.css
———————-
@import “sub1.css”;
@import “sub2.css”;
这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是谨慎使用。
4. CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
l 通配选择符* { sRules }
l 类型选择符E { sRules }
td { font-size:14px; width:120px; }
l 属性选择符
E [ attr ] { sRules }
E [ attr = value ] { sRules }
E [ attr ~= value ] { sRules }
E [ attr |= value ] { sRules }
h[title] { color: blue; }/* 所有具有title属性的h对象 */
span[class=demo] { color: red; }
div[speed="fast"][dorun="no"] { color: red; }
a[rel~="copyright"] { color:black; }
l 包含选择符E1 E2 { sRules }
table td { font-size:14px; }
l 子对象选择符E1 > E2 { sRules }
div ul>li p { font-size:14px; }
l ID选择符 #ID { sRules }
l 类选择符E.className { sRules }
l 选择符分组
E1 , E2 , E3 { sRules }
l 伪类及伪对象选择符
E : Pseudo-Classes { sRules }
( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]
E : Pseudo-Elements { sRules }
( Pseudo-Elements )[:first-letter :first-line :before :after]
可以继承的有:font-size font-family color
不可继承的一般有:border padding margin background-color width height等
============================
关于CSS specificity
CSS 的specificity 特性或称非凡性,它是衡量一个衡量CSS值优先级的一个标准,既然作为标准,就具有一套相关的判定规定及计算方式,specificity用一个四位的数 字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。
在多个选择符应用于同一个元素上那么Specificity值高的最终获得优先级。
选择符Specificity值列表:
规则:
1. 行内样式优先级Specificity值为1,0,0,0,高于外部定义。
如:<div style=”color: red”>sjweb</div>
外部定义指经由<link>或<style>标签定义的规则;
2.!important声明的Specificity值最高;
3.Specificity值一样的情况下,按CSS代码中出现的顺序决定,后者CSS样式居上;
4.由继续而得到的样式没有specificity的计算,它低于一切其他规则(比如全局选择符*定义的规则)。
算法:
当遇到多个选择符同时出现时候
按选择符得到的Specificity值逐位相加,
{数位之间没有进制 比如说: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0}
就得到最终计算得的specificity,
然后在比较取舍时按照从左到右的顺序逐位比较。
实例分析:
1.div { font-size:12px;}
分析:
1个元素{ div},Specificity值为0,0,0,1
2.body div p{color: green;}
分析:
3个元素{ body div p },Specificity值为0,0,0,3
3.div .sjweb{ font-size:12px;}
分析:
1个元素{ div },Specificity值为0,0,0,1
1个类选择符{.sjweb},Specificity值为0,0,1, 0
最终:Specificity值为 0,0,1,1
4.Div # sjweb { font-size:12px;}
分析:
1个元素{ div },Specificity值为0,0,0,1
1个类选择符{.sjweb},Specificity值为0,1,0, 0
最终:Specificity值为 0,1,0,1
5.html > body div [id=”totals”] ul li > p {color:red;}
分析:
6个元素{ html body div ul li p} Specificity值为0,0,0,6
1个属性选择符{ [id=”totals”] } Specificity值为0,0,1,0
2个其他选择符{ > > } Specificity值为0,0,0,0
最终:Specificity值为 0,0,1,6
!important 的优先级最高
使用!important可以改变优先级别为最高,其次是style对象,然后是id > class >tag ,另外在同级样式按照申明的顺序后出现的样式具有高优先级。
5. 前端页面由哪三层构成,分别是什么?作用是什么?
网页分成三个层次,即:结构层、表示层、行为层。
网页的结构层(structural layer)由 HTML 或 XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P 标签表达了这样一种语义:“这是一个文本段。”
网页的表示层(presentation layer) 由 CSS 负责创建。 CSS 对“如何显示有关内容”的问题做出了回答。
网页的行为层(behavior layer)负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM 主宰的领域。
6. css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}
7. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
IE内核浏览器:360,傲游,搜狗,世界之窗,腾讯TT
非IE内核浏览器:firefox opera safari chrome
1.就是ie6双倍边距的问题,在使用了float的情况下,不管是向左还是向右都会出现双倍,最简单的解决方法就是用display:inline;加到css里面去。
2.文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px,opera下就更不一样了。解决方案:给文字设定 line-height 。确保所有文字都有默认的 line-height 值。这点很重要,在高度上我们不能容忍1px 的差异。
3. ff下容器高度限定,即容器定义了height之后,容器边框的外形就确定了,不会被内容撑大,而ie下是会被内容撑大,高度限定失效。所以不要轻易给容器定义height。
4. 还讨论内容撑破容器问题,横向上的。如果float 容器未定义宽度,ff下内容会尽可能撑开容器宽度,ie下则会优先考虑内容折行。故,内容可能撑破的浮动容器需要定义width。
5. 浮动的清除,ff下不清除浮动是不行的。
6. mirrormargin bug,当外层元素内有float元素时,外层元素如定义margin-top:14px,将自动生成margin-bottom:14px。padding也会出现类似问题,都是ie6下的特产,该类bug 出现的情况较为复杂,远不只这一种出现条件,还没系统整理。解决方案:外层元素设定border 或 设定float。
7. 吞吃现象,限于篇幅,我就不展开了。还是ie6,上下两个div,上面的div设置背景,却发现下面没有设置背景的div 也有了背景,这就是吞吃现象。对应上面的背景吞吃现象,还有滚动下边框缺失的现象。解决方案:使用zoom:1。这个zoom好象是专门为解决ie6 bug而生的。
8. 注释也能产生bug~~~“多出来的一只猪。”这是前人总结这个bug使用的文案,ie6的这个bug 下,大家会在页面看到猪字出现两遍,重复的内容量因注释的多少而变。解决方案:用“<!–[if !IE]> picRotate start <![endif]–>”方法写注释。
9. <li/>里加 float <div/>,这是一个典型的,棘手的兼容问题,希望引起大家正视 ,给li 不同的属性会有不同的解释效果,ff下的解释稍可理解,ie6下的解释会让你摸不着头脑,由于问题的复杂性,将另起一文专门讨论该问题。在《ul使用心得》一文里有相关成果,却没给出问题解决的过程。
10. img下的留白。解决方案:给img设定 display:block。
11. 失去line-height。<div style=”line-height:20px”><img />文字</div>,很遗憾,在ie6下单行文字 line-height 效果消失了。。。,原因是<img />这个inline-block元素和inline元素写在一起了。解决方案:让img 和文字都 float起来。
12. 链接的hover状态。a:hover img{width:300px} 我们想让鼠标hover时,链接里包含的图片宽度变化,可惜在ie6下无效,ie7、ff下有效。
13. 非链接的hover状态。div:hover{} 这样的样式ie6是不认的,在ie7、ff下才有效果。
14. ie下overflow:hidden对其下的绝对层position:absolute或者相对层position:relative无效。解决方案:给overflow:hidden加position:relative或者position:absolute。另,ie6支持overflow-x或者overflow-y的特性,ie7、ff不支持。
15. ie6下严重的bug,float元素如没定义宽度,内部如有div定义了height或zoom:1,这个div就会占满一整行,即使你给了宽度。float元素如果作为布局用或复杂的容器,都要给个宽度的。
16. ie6下的bug,绝对定位的div下包含相对定位的div,如果给内层相对定位的div高度height具体值,内层相对层将具有100%的width值,外层绝对层将被撑大。解决方案给内层相对层float属性。
17. ie6下的bug,<head></head>内有<base target=”_blank”/>的情况下,position:relative层下的float层内文字无法选中。
18. 终于来了个ff的缺点。width:100%这个东西在ie里用很方便,会向上逐层搜索width值,忽视浮动层的影响,ff下搜索至浮动层结束,如此,只能给中间的所有浮动层加width:100%才行,累啊。opera这点倒学乖了跟了ie。
8. 如何居中一个浮动元素?
设置容器的浮动方式为相对定位,然后确定容器的宽高,比如宽500 高 300 的层,然后设置层的外边距。
div{Width:500px;height:300px;Margin: -150px 0 0 -250px;position:relative;left:50%;top:50%;}
9. 有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!
HTML5标签的改变:<header>, <footer>, <dialog>, <aside>, <figure>, <section> 等
IE9以上开始支持
CSS3实现圆角,阴影,对文字加特效,增加了更多的CSS选择器。
10. 如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
11. 你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
.clear {clear: both;display: block;overflow: hidden;visibility: hidden;width: 0;height: 0;}
.clearfix:after {clear: both;content: '.';display: block;visibility: hidden;height: 0;}
.clearfix {display: inline-block;}
* html .clearfix {height: 1%;}
.clearfix {display: block;}
.clearfix{*zoom:1;}.clearfix:after{content:'\20';display:block;height:0;clear:both;}
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.clearfix{display:inline-block;}/* Hides from IE-mac \*/
* html .clearfix{height:1%;}
.clearfix{display:block;}/* End hide from IE-mac */
这个clearfix的CSS使用了after这个伪对象,它将在应用clearfix的元素的结尾添加content中的内容。 在这里添加了一个句号".",并且把它的display设置成block;高度设为0;clear设为both;visibility设为隐藏。这样就达到了撑开容器的目的。要让IE也完美显示,则必须在clearfix这个CSS定义的后面加上一些专门为IE设定的HACK。
[HTML && CSS]
1.Doctype严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
严格模式:使用此类型的网页,浏览器解析将相对严格,不允许使用任何表现样式的标识和属性,比如在元素中直接使用background-color背景色属性。
混杂模式:浏览器对XHTML的解析较为宽松。允许使用4.01中的标签,但必须符合XHTML的语法。
2:行内元素有哪些?块级元素有哪些?CSS的盒模型?
行内元素:span,a,var ,em,input,img,img,textarea,var,em,strong,select,
块级标签:div,p,h1-h3,ul,ol,dl,li,dd,dt,table,td,tr,
CSS的盒模型:CSS布局中的每一个元素,在浏览器的解析中,都被当做一个盒状物。
3.CSS引入的方式有哪些? link和@import的区别是?
CSS引入的方式
在html文档的head部分加入:
在html文档的head部分直接写入css文档。
直接在html标签里写入对这个标签的css控制
测试信息
link和@import的区别是link写在html页面中,@import写在CSS页面中
4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
CSS选择符: 类选择器 、 标签名选择器、 ID选择器 、 后代选择器(派生选择器)、 群组选择器
可以继承: 类选择器 、 标签名选择器、 后代选择器(派生选择器)、群组选择器
优先级算法:
标签内直接定义:1000
ID选择器:100
类选择器 :10
标签名选择器:1
内联和important中,important优先级高
5:前端页面有哪三层构成,分别是什么?作用是什么?
结构层;主要指DOM节点;HTML/XHTML
样式层;主要是指页面渲染;CSS
脚本层:主要指页面动画效果;JS/AS
6:css的基本语句构成是?
选择符、属性、值
8:你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
IE6、7、8、FF、Opear、Safari、Chrome、Maxthon
Trident:Windows 下的 IE 浏览器使用的内核代号。除 IE 外,众多的 IE Shell(如 Maxthon )都使用这个内核。
Gecko:Mozilla Firefox 浏览器使用的内核代号。
Presto:Opera 浏览器使用的内核代号,这是目前公认网页浏览速度最快的浏览器内核。
KHTML/WebCore: Konqueror/Safari 浏览器使用的内核代号。
经常遇到的浏览器兼容问题:
1.在有的浏览器中,默认字体大小为12px,所以在设字体大小的时候,最小设为12px,如果在做的过程中,发现字体小于12,可直接作为图片使用
2.a标签对里不能嵌套a标签对
3.若给a标签内的内容样式加上样式,需要设置display:block;(在IE中如果设置宽高会自动变成块,在FF中则不会),但如果设置了float属性,就不需要设置display:block。
4.ul,ol在FF默认情况下,有list-style-type样式和padding值,dl在IE和FF默认情况下,有padding值,所以应该事先声明ul,li,ol,dl,dd,dd{margin:0;padding:0}。
5.作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应
6.关于手形光标. cursor: pointer. 而hand 只适用于 IE.
7.css布局中的居中问题:在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“margin-right: auto;margin-left: auto; ”需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个div,只要在每个拆出的div里定义margin-right: auto;margin-left: auto; 就可以了。
8.浮动ie产生的双倍距离
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离,这时需要设置display:inline; //使浮动忽略}
9.如何居中一个浮动元素?
对其设置margin:x auto;
10.有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!
有,HTML5的是目前正在为未来的HTML标准的主要修订的发展。其前任一样,4.01和XHTML 1.1的HTML,HTML5的是一个结构和提交万维网内容的标准。新标准结合了诸如视频播放,拖动和放下以前曾在第三方浏览器插件依赖例如Adobe Flash,微软的Silverlight的功能,和谷歌齿轮。
12:如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
把所有的CSS文件都放入一个样式表中,通过把所有的脚本放到一个文件中来减少HTTP请求的方法。js文件也采用同样的方法。把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和background-position属性来显示图片的不同部分。
14:你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
前端界面工程师:1. 与交互设计师、视觉设计师协作,根据设计图完成页面制作。 2. 维护及优化网站前端性能。
前景: 长期以来,国内前端开发在整个软件开发行业内占得比重较小,发展较晚。网站也多倾向于赢利最大化而轻视用户体验。前后端比例悬殊大。近几年来,随着 以用户为中心 的思想普及发展。前端开发呈现出强劲的发展态势,前端开发人员在项目中的重要性日益突出。前端开发人员呈现出严重的人员短缺现象。
[Javascript]
1:js是什么,js和html 的开发如何结合?
js是一种基于对象和事件驱动,并具有安全性的脚本语言。
可以html的三个地方编写js脚本语言:一是在网页文件的标签对中直接编写脚本程序代码;二是将脚本程序代码放置在一个单独的文件中,在网页文件中引用这个脚本程序语言;三是将脚本程序代码作为某个元素的事件属性值或超链接的href属性值。
div{margin: 0;padding: 0;border:1px red solid;}
2.怎样添加、移除、移动、复制、创建和查找节点
添加:append
删除:remove
移动:
复制:
创建:create
查找:
3.怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别
4.面向对象编程:b怎么继承a
5.看看下面alert的结果是什么
view sourceprint?1.function b(x, y, a) {
.arguments[2] = 10;
.alert(a);
}
b(1, 2, 3);
如果函数体改成下面,结果又会是什么?
a = 10;
alert(arguments[2] );
6.请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象
var obj = parseQueryString(url);
alert(obj.key0) // 输出0
7.ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
8.什么是闭包?下面这个ul,如何点击每一列的时候alert其index?
这是第一条这是第二条这是第三条
闭包是可以包含自由(未绑定)变量的代码块;这些变量不是在这个代码块或者任何全局上下文中定义的,而是在定义代码块的环境中定义。
9.最近看的一篇Javascript的文章是?
10.常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
最常用的库:jquery-1.4.2.min.js
常用的前端开发工具:firebug、photoshop、editplus、取色器、色板、eclipse
11.说说YSlow(可以详细一点)
yslow是一个工具,也可以理解成是一个插件,是基于Mozilla Firefox上firebug插件的一个插件。它的出现的主要目的就是检测我们的页面性能。它让用户可以就近取得所需的内容,解决网络拥挤的状况,提高用户访问网站的响应速度;其次,yahoo在ETags配置上也有独特之处,声明过期,就是说,用户从服务器取数据的时候,如果文件变化了,给他反馈新的文件,如果文件没有变化,只需告诉客户端没有变化即可,不必再把文件取回来,这样就节省了大量的网络带宽和资源。另外,只要将那些在加载过程中要执行的脚本放到底部,就可以实现最大的下载并行。
小说网对其评价:(a) 从样式表着手,避免CSS表达式。CSS表达式需要很多资源,有时甚至会造成页面假死。(b) 缓存一下不常修改的文件,并开启 GZIP压缩,减少网络传输时间(c) 减少DNS查找。YSlow认为一个页面上2个以内的域名比较合理。有些网站挂了不少统计代码,或者广告代码。统计拖累用户速度、广告影响用户视觉。(d) 避免重定向(跳转),我们在给链接地址的时候,一般会把链接地址写成 http://xxx.cn/xxx 或者 http://xxx.cn/xxx/ ,有区别吗?有!服务器如果接收到的URL是http://xxx.cn/xxx,它会自动重定向到http://xxx.cn/xxx/,虽然进入的都 是同一个页面,但是前者比后者多走了一步,重定向,显然多多少少浪费了一点时间。
1. 介绍一下isNaN函数?
如果参数不是数字类型的话isNaN返回true
2. javascript都支持哪些布尔型的操作?
&&, ||和!
3. “1″+2+4在javascript中得到什么?
因为“1”是String类型,所以所有的操作数都是String, 结果为124
4. 2+5+”8″得到的结果是什么?
因为2和5是数字类型,8是字符串,所以得到的结果是78
5. javascript有几种loop方法?
for, while, do-while, 没有foreach
6. javascript如何创建一个新的对象?
var obj = new Object() 或者 var obj = {}
7. 如何为一个对象属性赋值?
obj["age"]=17 或者obj.age=17
8. 如何为一个数组添加一个值?
arr[arr.length]= value;
1. 如何显示/隐藏一个DOM元素?
更改元素的css style,设为display: none。此外还可以将visibility设为hidden,透明度设为0,或长、宽设为0。
2. 一个定宽网页在浏览器(IE6,IE7,Firefox,IE5)中横向居中对齐的布局,请写出主要的HTML标签及CSS。
<!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Strict//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”zh-CN” lang=”zh-CN”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>居中</title>
<style type=”text/css”>
body {width: 600px}
html, body {margin: auto; padding: 0}
div.wrap {text-align:center; margin: 0; padding: 0}
</style>
</head>
<body>
<div class=”wrap”>居中</div>
</body>
</html>
3. CSS中margin和padding的区别
margin是外边距,属于元素之外,相邻元素的margin可以融合。
padding是内边距,在元素之内,相邻元素的padding不可融合。
4. JavaScript中如何检测一个变量是一个String类型?请写出函数实现
function(obj) {
returntypeof(obj) == ”string”;
}
5. 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”
这个看我论坛右上角的就知道了…
6. 如何控制网页在网络传输过程中的数据量
题目貌似有问题,应该是减少数据量吧。
最显著的方法是启用GZIP压缩。此外保持好的编码习惯,避免重复和css、JavaScript代码,多余的HTML标签和属性。
7. 补充代码,是鼠标单击后Button1到Button2的后面
<div>
<inputtype=”button” id =”button1″ value=”1″ onclick=”???” />
<inputtype=”button” id =”button2″ value=”2″ />
</div>
var parent =this.parentNode; parent.removeChild(this); parent.appendChild(this);
8. Linux中,将a、b打包为back.tar,命令是( )
不知道=。=
9. Flash、Ajax各自的优缺点,在使用中如何取舍?
Flash的缺点是需要客户端安装Flash插件,比较大,且更改了默认的HTML页面行为;但可以方便地实现很多特效及动画,且具有较高权限。
Ajax的缺点是编程较为复杂,需要服务器端的支持,能实现的效果只能是DOM API提供的,权限很低,较难跨域;但可以显著加快页面的载入速度和用户体验。
此外,二者都不能被搜索引擎索引(Google已支持Flash文本的索引),不利于SEO。
建议:重要和关键部分直接用HTML,交互部分可以使用Ajax,复杂的动画可采用Flash。
百度2010
1、JS主要数据类型?5分
答:主要的类型有number、string、object 以及 Boolean 类型,其他两种类型为 null 和 undefined。
2、img的alt和title的异同?10分
答:title属性为设置该属性的元素提供建议性的信息。比如为链接添加描述性文字。
为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。使用alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明。
3、CSS的JS调用?如font-family, -moz-border-radius 10分
答:fontFamily、MozBorderRadius
4、CSS布局:两列,左边宽度自适应,右边宽度固定200px 15分
#box1{width:100%;height:600px;position:relative;}
#left1{margin-right:200px;border:1px solid red;height:100%;}
#right1{width:200px;height:100%;position:absolute;top:0px;right:0px;border:1px solid blue;}
<div id="box1">
<div id="left1"></div>
<div id="right1"></div>
</div>
5、js对象的深度克隆?20分
Object.prototype.deepClone=function(){
function cloneObj(){}
cloneObj.prototype=this;
var obj=new cloneObj();
for(var o in obj){
if(typeof(obj[o])=="object")obj[o]=obj[o].deepClone();
} return obj;
}
6、动态打印时间,格式为yyyy-MM-dd hh:mm:ss? 15分
function printTime(){
var timer1=new Date();
var timer=timer1.toLocaleString();
timer=timer.replace(/[年月]/g,"-");
timer=timer.replace(/日/,"");
time.innerHTML=timer;
}setInterval("printTime()",1000);
7、如何提高网页运行性能?20分
没写。
8、linux下删除当前目录下扩展名为c的文件(如a.c,b.c)5分
rm–r *.c
find. -name “*.doc” -type f -exec cp {} /tmp/doc \;找到当前目录(.)下扩展名为(doc)的文件并拷贝到指定目录【注意-type f 指普通文件,-exec ls-l{}列出文件,最后加上\】
cp[options] source dest 复制
9、flash as2.0和flash as3.0在面向对象方面的异同?10分
答:面向对象方面,2.0像javascript,3.0像java。
到了 AS 2.0,面向对象被引入了,但它实质上是动态脚本语言,虽然已经有了类的概念和class关键字,但对象支持还是基于类似JavaScript的prototype机制——动态继承。
3.0同时支持静态类型,即基于类的继承方式;以及动态类型,即基于prototype的继承方式。推荐用静态类型。
10、Flash、Ajax各自的优缺点,在使用中如何取舍?10分
1、Flashajax对比
Flash适合处理多媒体、矢量图形、访问机器;对CSS、处理文本上不足,不容易被搜索。
Ajax对CSS、文本支持很好,支持搜索;多媒体、矢量图形、机器访问不足。
共同点:与服务器的无刷新传递消息、用户离线和在线状态、操作DOM
2、项目中遇到什么问题?如何解决?
前端题目总结
HTML相关
<!DOCTYPE>标签的定义与用法。
块级元素和行内元素都有哪些?
你真的了解HTML吗? 雅虎面试题把前面黄底那段拿去搜索下就知道了(曾在某浪公司面试的时候被问到过,确实是很好的问题)。
CSS相关
介绍所知道的CSS hack技巧(如:_, *, +, \9, !important 之类)。
介绍CSS盒模型。
CSS层叠是什么?介绍一下。
都知道哪些CSS浏览器兼容性问题。
有时会被问到些刁钻点的题,比如position值都有哪些,CSS3都有哪些新内容...
JavaScript基础相关
HTTP协议的状态消息都有哪些?(如200、302对应的描述)
AJAX是什么? AJAX的交互模型(流程)? AJAX跨域的解决办法?
同步和异步的区别?
简述JavaScript封装。
JavaScript继承有哪两种形式形式,进行描述。
什么是闭包?以下代码点击<p>会输出什么?为什么?能大概说明白的话继续问能想出几种解决办法。
答案: 5 解释: 由于闭包 i被保留在内存中,alert 显示的是i当前的值, 最后一次i++ 会导致i为5
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>闭包演示</title>
<style type="text/css">
p {background:gold;}
</style>
<script type="text/javascript">
function init() {
var pAry = document.getElementsByTagName("p");
for( var i=0; i<pAry.length; i++ ) {
pAry[i].onclick = function() {
alert(i);
}
}
}
</script>
</head>
<body onload="init();">
<p>产品 0</p>
<p>产品 1</p>
<p>产品 2</p>
<p>产品 3</p>
<p>产品 4</p>
</body>
</html>
在JS中this关键字的使用场合和用法(如在构造函数中、setTimeout中等)。
简述下cookie的操作,还有cookie的属性都知道哪些。
IE与FF的JS兼容性都知道哪些。
DOM操作 - 怎样添加、移除、移动、复制、创建和查找节点(这个问题真心是基础题,一般不会问)。
jQuery相关
jQuery源码是否尝试去读过?说说基本的架构或者 jQuery.fn.init 中都做了哪些判断。
都知道哪些不好的jQuery书写方式。
Sizzle是否有读过?
其它相关的加分项:
都使用和了解过哪些编辑器?都使用和了解过哪些日常工具?
都知道有哪些浏览器内核?开发过的项目都兼容哪些浏览器?
国内外的JS牛人都知道哪些?
瀑布流布局或者流式布局是否有了解
正则表达式有系统学习过吗(看书或网上教程)?有的话就问问简单点的邮箱验证、URL验证, 或者问问 贪婪匹配与懒惰匹配 的理论知识。
Node.js是否有过尝试?到什么程度?说说个人理解的看法?
HTML5都有哪些新的JS API?
前端优化知识都知道哪些?
基础算法题(如快速排序,能否一两句说说重要的核心原理或者数组消重等)。
是否有接触过或者了解过重构。
其他一些总结
百度web前端笔试试卷上的题目:
1.判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20
2.截取字符串abcdefg的efg
3.让一个input的背景颜色变成红色
4。给一个页面,写html css
5。div的高宽等于浏览器可见区域的高宽,浏览器滚动,div始终覆盖浏览器的整个可见区域
6。判断一个字符串中出现次数最多的字符,统计这个次数
7。IE与FF脚本兼容性问题
又重新问的是1,4,6,7,这次问出题者的意图,并且让给出7的更多答案,以及IE FF不兼容的原因
然后看了看简历,没有问简历上的项目,而是让自己随便谈谈
1对于web客户端技术未来趋势发展谈谈看法
javascript + ajax=RIA
Adobe Flash AS 3
Flex
Sliveright
2web开发团队人员应该如何分工协作
布局 CSS 脚本
比如脚本人员长期的积累可能铸造类型YUI这样的产品级脚本库(亮点)
3web开发曾经的团队有没有别人遇到问题,什么问题,向你请教
4如果要实习,什么时候可以
5自己在开发的过程中遇到什么问题,谈谈看法
6web开发脚本开发环境用什么、调试用什么
试过aptana,现在就用editplus
调试肯定用firebug,ie下看页面DOM用IEInspector
7如果有个新技术,现在需要掌握,你会怎么做
新技术的发现我一般是通过RSS工具,比如我用GoogleReader
每天有半个小时左右在看最新的资讯、技术走向
发现新技术,首先有个大概了解,如果有深入的必要
我一般会看他的官网,比如jquery,我会搜索到www.jquery.com,然后看Docs、samples
如果要用到项目中,有困难的问题,我会svn得到最新的这个技术的源码,深入跟踪进去,看实现原理
一般现在涌现的技术都是opensource
提问时间
1百度web开发脚本是否有做类似YUI库的打算
2百度web开发工程师打算招多少人
百度电话二面回忆 web开发部–web开发工程师
首先是自我介绍
然后谈谈做的web项目
然后开始问技术问题
前端开发的优化问题
答:
产品发布时,js的压缩,即函数名替换、整个文件压缩成一行
css开发的时候 注释写清楚,先有个base.css,然后根据不同页面需要再加css,发布的时候将css中的一个定义写成一行,目的是压缩文件大小
最终发布的时候甚至可以将css,js分别压缩成一个文件,甚至css、js通过技巧压缩到一个里边(亮点)
这样的目的是,减少用户访问web产品的http连接数
web前端产品的开发流程
答:首先根据产品的定位、用户群,确定配色,然后纸上设计整体布局,然后png或者psd出效果图,切出需要的小图片,然后手写代码div+css构造出页面,然后根据功能写脚本
参考126邮箱首页,将所有小图片放到一个图片中,通过css的background-position实现页面,还是为了优化,减少http连接数
规避javascript多人开发函数重名问题
答:首先是通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀,虽然函数名看起来复杂,发布的时候还是可以替换,从而优化。
还有一种办法是,每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性。
javascript面向对象中继承实现
答:我是用prototype.js extend.js扩展
然后子类中parent.initialize()…
答的不好
正确答案:
// 1. 构造器
function Animal() {};
function Mammal() {};
function Canine() {};
function Dog() {};
// 2. 原型链表
Mammal.prototype = new Animal();
Canine.prototype = new Mammal();
Dog.prototype = new Canine();
prototype.js实现的基本原理
答:
将功能封装
比如Ajax.Request,还是有判断浏览器的代码;Position这样的实现页面元素位置的计算
prototye太大,如果一个页面功能不需要这样的,自己实现,怎么做
答:首先页面、css、脚本分离之后,脚本中将整个模块功能写成一个类var Do={}
其中初始化函数init:function(){},然后最后做Do.init()
其中init会对页面上form中需要交互的元素绑定事件,比如$(’input1′).onclick=function(){}
IE、FF下面脚本的区别
答:
1.IE有outerHTML,FF没有
2.页面元素id,IE可以直接取,FF必须document.getElementById()
3.Ajax里边FF是newXMLHttpRequest,而IE是
try new ActiveXObject(’Msxml2.XMLHTTP’)try new ActiveXObject(’Microsoft.XMLHTTP’)
FF下面实现outerHTML
答:.parenet.firstChild .parent.innerHTML
这个没答好
正确答案:原理是,get:取到这个标签的tagname,然后属性循环构造成这个标签的属性
set:把字符串用insertBefore插入到这个元素前面,然后removeChild这个元素
<head>
<SCRIPTLANGUAGE=”JavaScript”>
<!–
if(typeof(HTMLElement)!=”undefined”&& !window.opera)
{
HTMLElement.prototype.__defineGetter__(”outerHTML”,function()
{
var a=this.attributes, str=”<”+this.tagName, i=0;
for(;i<a.length;i++)
if(a[i].specified)
str+=” “+a[i].name+’=”‘+a[i].value+’”‘;
if(!this.canHaveChildren)
return str+” />”;
return str+”>”+this.innerHTML+”</”+this.tagName+”>”;
});
HTMLElement.prototype.__defineSetter__(”outerHTML”,function(s)
{
var d = document.createElement(”DIV”); d.innerHTML= s;
for(var i=0;i<d.childNodes.length; i++)
this.parentNode.insertBefore(d.childNodes[i],this);
this.parentNode.removeChild(this);
});
HTMLElement.prototype.__defineGetter__(”canHaveChildren”,function()
{
return!/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
});
}
//–>
</SCRIPT>
IE、FF下面CSS的解释区别
答:
1.png透明背景,FF下面没有问题,IE需要用滤镜通道
2.z-index在IE、FF下面的解释问题,
IE会认为第一个z-index=0
3.长字符串,word-wrap:break-all可以解决IE,但是FF需要overflow:hidden才行
冯舒娅补充:
1、有些标签在ff中不能用,比如button
2、滤镜
3、鼠标cursor:hand cursor:pointer
4、div的高度自适应
5、对box模型解析不一样
6、ul、ol的padding和margin
IE都能识别*,标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important;
IE7能识别*,也能识别 !important;
FF不能识别*,但能识别 !important;
例如style=”*width:10px;!importantwidth:20px;”
这样在IE6下宽度为10px,在IE7下宽度时20px
web前端技术的展望
答:javascript ajax;flashAS;Flex;Sliveright
附上网上的百度web开发工程师笔试问题集
1编写一个方法 求一个字符串的字节长度
<script language=”javascript”type=”text/javascript”>
new function(s)
{
if(!arguments.length||!s) returnnull;
if(”"==s) return 0;
var l=0;
for(var i=0;i<s.length;i++)
{
if(s.charCodeAt(i)>255) l+=2;
else l++;
}
alert(l);
}(”hello你好,我好,大家好!world!”);
</script>
2编写一个方法 去掉一个数组的重复元素
<script language=”javascript”type=”text/javascript”>
Array.prototype.strip=function()
{
if(this.length<2) return[this[0]]||[];
var arr=[];
for(var i=0;i<this.length;i++)
{
arr.push(this.splice(i–,1));
for(var j=0;j<this.length;j++)
{
if(this[j]==arr[arr.length-1])
{
this.splice(j–,1);
}
}
}
return arr;
}
vararr=["abc",85,"abc",85,8,8,1,2,5,4,7,8];
alert(arr.strip());
</script>
3说出3条以上ff和ie的脚本兼容问题
IE 有children,FF没有;IE有parentElement,FF没有;IE有innerText,outerText,outerHTML,FF 没有;FF有HTMLElement,HTMLDivElement,XMLDocument,DocumentFragment,Node,Event,Element等等,IE没有;IE有数据岛,FF没有;IE跟FF创建HttpRequest实例的方法不一样。。等等。。
4用脚本写去除字符串的前后空格
String.prototype.trim =function(mode)
{//前后去空格
if (mode==’left’) {
return ((this.charAt(0) == ” “ &&this.length > 0) ? this.slice(1).trim(’left’) : this);
} else
if (mode == ’right’) {
return ((this.charAt(this.length -1) == ” “ && this.length > 0) ? this.slice(0, this.length -1).trim(’right’) : this);
} else {
return this.trim(’left’).trim(’right’);
}
};
5算出字符串中出现次数最多的字符是什么,出现了多少次
<scripttype=”text/javascript”>
//<![CDATA[var str="adadfdfseffserfefsefseeffffftsdg"; //命名一个变量放置给出的字符串
var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0
var result = ''; //命名一个变量放置结果输入
while( str != '' ){ //循环迭代开始,并判断字符串是否为空
oldStr = str; //将原始的字符串变量赋值给新变量
getStr = str.substr(0,1); //用字符串的substr的方法得到第一个字符(首字母)
eval("str =str.replace(/"+getStr+"/g,'')"); //详细如补充
if( oldStr.length-str.length >maxLength )
{ //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
maxLength =oldStr.length-str.length; //两字符串长度相减得到最大的字符串长度
result = getStr + "=" +maxLength //返回最大的字符串结果(字母、出现次数)
}
}
alert(result) //弹出结果
//]]>
</script>
6写出3中使用this的典型应用
在HTML元素事件属性中inline方式使用this关键字:
7.最后一个问题是,如何制作一个combo选项,就是可以输入可以下拉菜单选择。
这个网上有很多成品,主要是通过绝对定位和相对定位结合的方式,改造原有的select 标签和input标签的方法。
DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
前端工程师面试题!!!
[HTML && CSS]
1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
2:行内元素有哪些?块级元素有哪些?CSS的盒模型?
3.CSS引入的方式有哪些? link和@import的区别是?
4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
5:前端页面有哪三层构成,分别是什么?作用是什么?
6:css的基本语句构成是?
8:你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
9.如何居中一个浮动元素?
10.有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!
11.你怎么来实现下面这个设计图,主要讲述思路 (效果图省略)
13:如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?
14:你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?
1、JavaScript有哪几种数据类型
2、中alt和tittle的区别
3、下面css标签在JavaScript中调用应如何拼写,border-left-color,-moz-
4、动态打印 yyyy-mm-dd hh:mm:ss
5、如何提高网页的运行速度
6、JavaScript中如何对一个对象进行深度clone
7、flash中ActionScript2.0和ActionScript3.0面向对象的异同
答案见http://www.lihaihong.com/article/86.html
第一题
编写一个方法 求一个字符串的字节长度
第二题
如何控制alert中的换行
第三题
解释document.getElementById(“ElementID”).style.fontSize=”1.5em”
第四题
将一个类似图中的效果分离成css和html
第五题
按照格式 xxxx年xx月xx日xx时xx分xx秒动态显示时间 要求不足10的补0
第六题
编写一个方法 去掉一个数组的重复元素
第七题
说出3条以上ff和ie的脚本兼容问题
第八题
按要求写一个简单的ajax示例 简单的没意义 就不写了
腾讯:
1.请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
HTML && CSS
1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 行内元素有哪些?块级元素有哪些?CSS的盒模型?
2.CSS引入的方式有哪些? link和@import的区别?
3.CSS选择符有哪些?哪些属性可以继承?优先级?内联和important哪个优先级高?
4.经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
5.如何居中一个浮动元素?
6.HTML5和CSS3的了解情况
7.你怎么来实现下面这个设计图
Javascript
1.怎样添加、移除、移动、复制、创建和查找节点
2.怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别
3.面向对象编程:b怎么继承a
4.看看下面alert的结果是什么
function b(x, y, a) {
arguments[2] = 10;
alert(a);
}
b(1, 2, 3);
如果函数体改成下面,结果又会是什么?
a = 10;
alert(arguments[2] );
5.请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象,如:var url = ”http://www.taobao.com/index.php?key0=0&key1=1& key2=2…..”
var obj = parseQueryString(url);
alert(obj.key0) // 输出0
(来自淘宝网校园招聘笔试题)
6.ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
7.什么是闭包?下面这个ul,如何点击每一列的时候alert其index?
这是第一条这是第二条这是第三条
8.最近看的一篇Javascript的文章
9.你如何去实现这个Tabview
10.常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
11.性能-Yslow
1.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;
2.xhtml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
3.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
Css盒模型:内容,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高
7.前端页面有哪三层构成,分别是什么?作用是什么?
结构层 Html 表示层 CSS 行为层 js
8.css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}
9.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
10.写出几种IE6 BUG的解决方法
1.双边距BUG float引起的 使用display
2.3像素问题 使用float引起的 使用dislpay:inline -3px
3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
4.Ie z-index问题 给父级添加position:relative
5.Png 透明 使用js代码 改
6.Min-height 最小高度 !Important 解决’
7.select 在ie6下遮盖 使用iframe嵌套
8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
11.<img>标签上title与alt属性的区别是什么?
Alt 当图片不显示是 用文字代表。
Title 为该属性提供信息
12.描述css reset的作用和用途。
Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一
13.解释css sprites,如何使用。
Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量
14.浏览器标准模式和怪异模式之间的区别是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可显示为什么模式
15.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
16.什么是语义化的HTML?
直观的认识标签 对于搜索引擎的抓取有好处
17.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)
1、什么是CSS?CSS引入的方式有哪些? 它们之间的区别是? CSS选择符有哪些?哪些属性可以继承?CSS优先级的关系?
(1)在网络上最常见的是Cascading Style Sheets(层叠样式表),简称CSS。
(2) 它的引入方式有:
定义内部对象 (可以在你的HTML文档的<HTML>和<BODY>标记之间插入一个<STYLE>...</STYLE>块对象。);
内联定义 (即是在对象的标记内使用对象的style属性定义适用其的样式表属性。)
层叠样式(调用外部样式表,这是我们最常使用表现与结构分离的深层运用。)
层叠样式CSS的语法: CSS的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)
语法: selector {property: value} (选择符 {属性:值})
区别:
根据不同需求和页面环境配合使用,个人认为没有限定的写法,只有最优的做法。
(3) CSS选择符有:类选择符(.selector {property: value}) ID选择符(#selector {property: value})延伸开来还有可对标签对象直接定义、包含定义、层叠定义等手段达到我们前端所表现的效果。
(4) 关于继承实在太多了,用多了自然会知道,比如width、height、margin、padding....这些是不可继承的,继承的有color、line-height、font-seze等等。
(5) 我们通过以下列表来说明排序:
内联样式 >ID选择器>类,属性,伪类 选择器>元素标签,伪元素 选择器
[1.0.0.0][0.1.0.0] [0.0.1.0][0.0.0.1]
!important > [ id > class > tag ]
使用!important可以改变优先级别为最高,其次是style对象,然后是id > class >tag ,另外,另外在同级样式按照申明的顺序后出现的样式具有高优先级。
2 : 前端页面有哪三层构成,分别是什么?作用是什么?
网页的结构层(structural layer)由 HTML 或 XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,p 标签表达了这样一种语义:“这是一个文本段。”
网页的表示层(presentation layer) 由 CSS 负责创建。 CSS 对“如何显示有关内容”的问题做出了回答。
网页的行为层(behavior layer)负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM 主宰的领域。
3 : css的基本语句构成是?
选择器{属性1:值1;属性2:值2;……}
4 :你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?
浏览器和内核参考:http://neolee.com/pc/several-browser-core-introduction/
IE、Opera、Firefox、Safari、The World还有现在的Chrome等
那内核是什么呢?内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。
现在市面上常见的 内核基本是一下4种:
Trident:
这是微软开发的一种排版引擎。该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的 IE7。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如 Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内 核名称而只好如此说,至少老N就是如此。。。)。自从发布后,Trident不断地被更新和完善:
Trident II(IE5)——增进对CSS1.0的支持及对CSS2重大的变更;
Trident III(IE5.5)——修正部分CSS的排版控制;
Trident IV(IE6)——修正了一部分box-model的错误以及增加了“兼容模式(Quirks Mode)”切换功能,以增加对文件类型描述(Document Type Definition,DTD)的支持;
Trident V(IE7)——修正许多CSS排版处理上的错误以及增加对pNG格式alpha通道(半透明)的支持。(这就是IE6经常被诟病的对png图片支持不良的之处!)
Geckos:
Gecko是套开放源代码的、以C++编写的网页排版引擎。这软件原本是由网景通讯公司开发的,Netcape6开始采用该内核。后来的 Mozilla FireFox也采用了该内核,Geckos的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。Geckos 现在由Mozilla基金会维护。
presto:
presto是一个由Opera Software开发的浏览器排版引擎,该内核在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核。
Webkit:
苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软 件,在GpL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开发源代码。在安全方面不受IE、Firefox的制约,所以 Safari浏览器在国内还是很安全的。
简单的总结一下:
使用Trident内核的浏览器:IE、Maxthon、TT、The World等;
使用Gecko内核的浏览器:Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey;
使用presto内核的浏览器:Opera7及以上版本;
使用Webkit内核的浏览器:Safari、Chrome。
5 . 如何居中一个浮动元素?
//这个。。。 一般用不上吧;而且用我用的方法不太好
.bb1{position:relative;border:1px solid #333;padding:10px;margin:20px auto;width:400px;}
.bb2{position:relative;left:50%;float:left}
.bb3{position:relative;right:50%;}
<div class="bb1">
<div class="bb2">
<div class="bb3">
<a href="">导航1</a>
</div></div></div>
6. img元素的alt和title有什么异同?
正确的使用alt text属性和title属性不仅可以提高图片的搜索能力,对用户体验上也是很有帮助。
alt text
替换文字(alt text)是为了给那些不能看到你文档中图像的浏览者提供文字说明。这包括那些使用本来就不支持图像显示或者图像显示被关闭的浏览器的用户,视觉障碍的用户和使用屏幕阅读器的用户。所以替换文字是用来替代图像而不是提供额外说明文字的。Alt text在IE浏览器中还起到了title的作用——鼠标经过时的文字提示。IE浏览器给了大家一个误导,在IE中ALT会变成文字提示是因为IE不标准。这一点Firefox做的就比较好。
title
title是对图片的说明和额外补充,如果需要在鼠标经过图片时出现文字提示应该用属性title。title属性的优先级高于alt text。但由于错误的引导,很多初学者就在img标签内只加了alt属性。
(1). alt text和title对访问者都很重要(alt text对搜索引擎会更重要一些),所以在定义img对象时,最好将alt text和title属性都写全,保证在各种浏览器中都能正常使用。
(2). 在alt text和title中包含关键字,并且二者内容最好不一样。
(3). 不要在alt text和title中堆积关键字,否则可能会导致搜索引擎惩罚。
7 . DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
1.创建新节点
createDocumentFragment()
createElement()
createTextNode()
2.添加、移除、替换
appendChild()
removeChild()
replaceChild()
Before()
3.查找
getElementsByTagName()
getElementsByName()
getElementById()
8.document.body和document.documentElement比较
document.body和document.documentElement比较:
document.body是DOM中Document对象里的body节点, document.documentElement是文档对象根节点(html)的引用。
IE在怪异模型(quick mode)下document.documentElement无法正确取到clietHeight scrollHeight等值,比如clietHeight=0。可以见IE的怪异模型并没有把html作为盒子模型的一部分,好在现在很少使用怪异模型。(注:如果页面没写DTD或写的不对,IE6默认使用怪异模型解析页面)
document.body.scrollHeight和document.documentElement.scrollHeight的区别:
document.body.scrollHeight是body元素的滚动高度,document.documentElement.scrollHeight为页面的滚动高度,且 document.documentElement.scrollHeight在IE和Firefox下还有点小差异。
IE : document.documentElement.scrollHeight = document.body.scrollHeight + marginTop bottom高度 + 上下border宽度
firefox : document.documentElement.scrollHeight = document.body.scrollHeight + marginTop bottom高度
参考:http://blog.csdn.net/wangjj_016/archive/2010/02/10/5304788.aspx
http://j2ee-chenwei.javaeye.com/blog/460340
CSS部分
一.浏览器兼容性问题
1.各浏览器中 ‘width’ 和 ‘height’ 在某些元素上的作用位置有差异
参考:http://www.w3help.org/zh-cn/causes/RD8001
2.IE6 中浮动元素在某些情况下会有双倍外边距
参考:http://www.w3help.org/zh-cn/causes/RX1001
二.css层叠
参考:http://www.w3help.org/zh-cn/kb/005/
三.CSS hack
参考:http://www.w3help.org/zh-cn/causes/RY8003
http://topic.csdn.net/u/20100715/17/6306e40a-1ea1-4f0f-a1c3-acd7470800ea.html?18677
四.CSS 框模型( Box module )
参考:http://www.w3help.org/zh-cn/kb/006/
五.CSS 定位体系
参考:http://www.w3help.org/zh-cn/kb/009/
AJAX笔试面试题汇总
1. 什么是ajax,为什么要使用Ajax(请谈一下你对Ajax的认识)
什么是ajax:
AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。
Ajax包含下列技术:
- 基于web标准(standards-based presentation)XHTML+CSS的表示;
- 使用 DOM(Document Object Model)进行动态显示及交互;
- 使用 XML 和 XSLT 进行数据交换及相关操作;
- 使用 XMLHttpRequest 进行异步数据查询、检索;
- 使用 JavaScript 将所有的东西绑定在一起。
为什么要用ajax:Ajax应用程序的优势在于:
- 1. 通过异步模式,提升了用户体验
- 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
- 3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
2. Ajax的最大的特点是什么。
Ajax可以实现动态不刷新(局部刷新)
就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
3. 请介绍一下XMLHTTPREQUEST对象?
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
4. Ajax技术体系的组成部分有哪些?
HTML,css,dom,xml,xmlHttpRequest,javascript
5. AJAX应用和传统Web应用有什么不同?
在传统的Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,需要建立一个HTML form然后GET或者POST数据到服务器端。用户需要点击”Submit”按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载。
因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。
使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互。
通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息(不用重新加载页面),展示给用户的还是通一个页面,用户感觉页面刷新,也看不到到Javascript后台进行的发送请求和接受响应。
6. AJAX请求总共有多少种CALLBACK
Ajax请求总共有八种Callback
- onSuccess
- onFailure
- onUninitialized
- onLoading
- onLoaded
- onInteractive
- onComplete
- onException
7.Ajax和javascript的区别?
javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。
Javascript是由网景公司开发的一种脚本语言,它和sun公司的java语言是没有任何关系的,它们相似的名称只是一种行销策略。
在一般的web开发中,javascript是在浏览器端执行的,我们可以用javascript控制浏览器的行为和内容。
在 Ajax应用中信息是如何在浏览器和服务器之间传递的
通过XML数据或者字符串
8,在浏览器端如何得到服务器端响应的XML数据
XMLHttpRequest对象的responseXMl属性
9, XMLHttpRequest对象在IE和Firefox中创建方式有没有不同?
有,IE中通过new ActiveXObject()得到,Firefox中通过new XMLHttpRequest()得到
10,介绍一下XMLHttpRequest对象的常用方法和属性(回答的越多越好)
open(“method”,”URL”) 建立对服务器的调用,第一个参数是HTTP请求 方式可以为GET,POST或任何服务器所支持的您想调用的方式。
第二个参数是请求页面的URL。
- send()方法,发送具体请求
- abort()方法,停止当前请求
- readyState属性 请求的状态 有5个可取值 0=未初始化 ,1=正在加载
2=以加载,3=交互中,4=完成
- responseText 属性 服务器的响应,表示为一个串
- reponseXML 属性 服务器的响应,表示为XML
status 服务器的HTTP状态码,200对应ok 400对应not found
11,Ajax的优点和缺点
使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
对应用Ajax最主要的缺点就是,它可能破坏浏览器后退按钮的正常行为
因为Ajax中采用了xml技术,所以在Ajax中也可能问到XML的问题
12,什么是XML
XML是扩展标记语言,能够用一系列简单的标记描述数据
13,xml的解析方式
常用的用dom解析和sax解析。dom解析是一次性读取xml文件并将其构造为DOM对象供程序使用,优点是操作方便,但是比较耗内存。Sax是按事件驱动的方式解析的,占用内存少,但是编程复杂
14,你采用的是什么框架(架包)?
这题是必问的,一般也是最开始就会问到。
在java中比较流行的有 dojo, Prototype , JQuery, Dwr, extjs 等等
15,如果熟悉某种ajax框架,他可能会问到怎样在程序中使用这种框架
DWR框架介绍
- DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).
- DWR的实现原理是通过反射,将java翻译成javascript,然后利用回调机制,从而实现了javascript调用Java代码
- $() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。
- $F()函数是另一个大收欢迎的“快捷键”,它能用于返回任何表单输入控件的值,比如text box,drop-down list。这个方法也能用元素id或元素本身做为参数。
- $A()函数能把它接收到的单个的参数转换成一个Array对象。
16,介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
17、介绍一下XMLHttpRequest对象
通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
AJAX开始流行始于Google在2005年使用的”Google Suggest”。
“Google Suggest”就是使用XMLHttpRequest对象来创建动态的Web接口:
当用户开始输入google的搜索框,Javascript发送用户输入的字符到服务器,然后服务器返回一个建议列表。
XMLHttpRequest对象在IE5.0+, Safari 1.2, Mozilla 1.0/Firefox, Opera 8+ 和NetScapt7 开始被支持。
18、AJAX应用和传统Web应用有什么不同?
在传统的Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,需要建立一个HTML form然后GET或者POST数据到服务器端。用户需要点击”Submit”按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载。
因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。
使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互。
通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息(不用重新加载页面),展示给用户的还是通一个页面,用户感觉页面刷新,也看不到到Javascript后台进行的发送请求和接受响应。
19、AJAX的全称是什么?介绍一下AJAX?
AJAX的全称是Asynchronous JavaScript And XML.
AJAX是2005年由Google发起并流行起来的编程方法, AJAX不是一个新的编程语言,但是它是一个使用已有标准的新的编程技术。
使用AJAX可以创建更好,更快,更用户界面友好的Web应用。
AJAX技术基于Javascript和HTTP Request.
20,介绍一下XMLHttpRequest对象的常用方法和属性?
- open(“method”,”URL”) 建立对服务器的调用,第一个参数是HTTP请求 方式可以为GET,POST或任何服务器所支持的您想调用的方式。
第二个参数是请求页面的URL。
- send()方法,发送具体请求
- abort()方法,停止当前请求
- readyState属性 请求的状态 有5个可取值 0=未初始化 ,1=正在加载 2=以加载,3=交互中,4=完成
- responseText 属性 服务器的响应,表示为一个串
- reponseXML 属性 服务器的响应,表示为XML
- status 服务器的HTTP状态码,200对应ok 400对应not found
21,.Ajax主要包含了哪些技术?
Ajax(Asynchronous JavaScript + XML)的定义
- 基于web标准(standards-based presentation)XHTML+CSS的表示;
- 使用 DOM(Document Object Model)进行动态显示及交互;
- 使用 XML 和 XSLT 进行数据交换及相关操作;
- 使用 XMLHttpRequest 进行异步数据查询、检索;
- 使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出者Jesse James Garrett的原文,原文题目(Ajax: A New Approach to Web Applications)。
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。
AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。
22、AJAX都有哪些有点和缺点?
- 1、最大的一点是页面无刷新,用户的体验非常好。
- 2、使用异步方式与服务器通信,具有更加迅速的响应能力。
- 3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
- 4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。
ajax的缺点
- 1、ajax不支持浏览器back按钮。
- 2、安全问题 AJAX暴露了与服务器交互的细节。
- 3、对搜索引擎的支持比较弱。
- 4、破坏了程序的异常机制。
- 5、不容易调试。

浙公网安备 33010602011771号