1.!doctype的作用是什么?严格模式和混合模式如何区分?有何意义?
<!doctype>的作用是用于文档类型声明。
严格模式是浏览器根据web标准去解析页面,是一种要求严格的DTD(文档类型定义),不允许使用任何表现层的语法。
混杂模式是一种向后兼容的解析方法,根据声明的DTD类型判断是哪种类型(过渡的、严格的),如果没有文档类型声明,则是混杂模式,说的透明点就是可以实现IE5.5以下版本浏览器的渲染模式。
意义:混杂模式通常用于模拟老式浏览器的行为以防止老站点无法工作,可以通过加入XML声明来触发。
实际上:各个浏览器的混杂模式基本就是各个浏览器的私有模式,不相互兼容。所以,除非是为了兼容的问题,比如你不想修改很久很久以前做的IE ONLY的网页,否则刻意触发混杂模式没有任何意义。
简单点说:
区别:严格模式是浏览器根据规范去显示页面;混杂模式是以一种向后兼容的方式去显示。
意义:决定浏览器如何渲染网站(浏览器使用那种规范去解析网页)。
触发:浏览器根据doctype是否使用哪种dtd来决定。
2.对WEB标准以及W3C的理解与认识
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率;使用外链css和js脚本,结构行为表现的分离,文件下载与页面速度更快;内容能被更多的用户所访问、内容能被更广泛的设备所访问;更少的代码和组件,容易维护、改版方便,不需要变动页面内容;提供打印版本而不需要复制内容,提高网站易用性。
3.html、xhtml、html5有什么区别和联系
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言,关系上讲,XHTML是HTML的子集,html5是html的最新标准。(详情)
其中:
XHTML 元素必须被正确地嵌套。
XHTML 元素必须被关闭。
标签名必须用小写字母。
XHTML 文档必须拥有根元素。
4.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div p h1 h2 h3 h4 form ul
行内元素: a b br i span input select
CSS盒模型:content,border ,margin,padding
5.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入 (见详情)
两者都是外部引用CSS的方式,但是存在一定的区别:
link是XHTML标签,除了加载CSS外,还可以定义RSS(简易信息聚合)等其他事务;@import属于CSS范畴,只能加载CSS。
link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
link支持使用Javascript控制DOM去改变样式;而@import不支持。
@import的优势在于可以在css文件中使用,用来调用别的css。
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
指定>继承 id>class>标签选择
后者优先级高
7.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Presto)
8.写出几种IE6 BUG的解决方法
1)双边距BUG:float引起的 给float的元素添加一个display:inline
2)3像素问题:当浮动元素与非浮动元素相邻时,这个3像素的Bug就会出现,使用zoom和margin:-3px
3)超链接访问后hover失效:使用正确的书写顺序 link visited hover active
4)ie z-index问题:给父级添加position:relative并加上z-index
5)透明PNG图片有灰底:8种解决方案
6)min-height最小高度:min-height: 22px;height: auto!important;height: 22px;
7)select在ie6下遮盖:使用iframe嵌套
8)为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,_zoom:0.08 line-height:1px)
9.zoom有什么作用?
1)zoom属性是ie浏览器的专有属性,Firefox等浏览器不支持。
2)它可以设置或检索对象的缩放比例(用法)
3)触发ie的hasLayout属性,从而清除浮动、清除margin的重叠等。其中,清除浮动
{
overflow:hidden;
_zoom:1;
}
10.IE6 IE7 IE8的css hack(为什么有些css属性前有短横线?)
color{
background-color: #CC00FF; /*所有浏览器都会显示为紫色*/
background-color: #FF0000\9; /*IE6、IE7、IE8会显示红色*/
*background-color: #0066FF; /*IE6、IE7会变为蓝色*/
_background-color: #009933; /*IE6会变为绿色*/
}
好多css hack,最重要的是简单实用能解决问题就行了
总结:
\9: IE6 IE7 IE8
*: IE6 IE7
_: IE6
*+: IE7
11.描述css reset的作用和用途。
Reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一(详情)
12.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
13.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动clear:both(理论上能清楚任何标签,但增加了无意义的标签)
2.使用overflow:auto(使用zoom:1用于兼容IE)
3.使用afert伪元素清除浮动(用于非IE浏览器)
4.其他
14.各种居中问题
15.javascript的typeof返回哪些数据类型
object number function boolean underfind string
16.split() join() 的区别
前者是切割成数组的形式,后者是将数组转换成字符串
17.数组方法pop() push() unshift() shift()
push()尾部添加 pop()尾部删除
unshift()头部添加 shift()头部删除
18.ajax请求的时候get 和post方式的区别
一个在url后面 一个放在虚拟载体里面
有大小限制
安全问题
应用不同 一个是论坛等只需要请求的,一个是类似修改密码的