面试题总结
HTML
1.<img>标签上title属性与alt属性的区别是什么?
alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的。且长度
必须少于100个英文字符或者用户必须保证替换文字尽可能的短。
这包括那些使用本来就不支持图像显示或者图像显示被关闭的浏览器的用户,视
觉障碍的用户和使用屏幕阅读器的用户等。
title属性为设置该属性的元素提供建议性的信息。使用title属性提供非本质的额
外信息。
2.分别写出以下几个HTML标签:文字加粗、下标、居中、字体
加粗:<b>、<strong>
下标:<sub>
居中:<center>
字体:<font>、<basefont>
3.请说说你对标签语义化的理解?
a.去掉或者丢失样式的时候能够让页面呈现出清晰的结构
b.有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:
爬虫依赖于标签来确定上下文和各个关键字的权重;
c.方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式
来渲染网页;
d.便于团队开发和维护,语义化更具可读性,遵循W3C标准的团队都遵循这个
标准,可以减少差异化。
4.Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
声明位于文档中的最前面,处于标签之前。告知浏览器以何种模式来渲染文档。
严格模式的排版和JS运作模式是,以该浏览器支持的最高标准运行。
在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防
止站点无法工作。
DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
5.你知道多少种Doctype文档类型?
标签可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的
HTML文档。
HTML4.01规定了三种文档类型:Strict、Transitional以及Frameset。
XHTML1.0规定了三种XML文档类型:Strict、Transitional以及Frameset。
Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,
Quirks(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览
器而设计的网页。
6.HTML与XHTML——二者有什么区别
a.XHTML元素必须被正确地嵌套。
b.XHTML元素必须被关闭。
c.标签名必须用小写字母。
d.XHTML文档必须拥有根元素。
7.iframe的优缺点?
优点:
a.解决加载缓慢的第三方内容如图标和广告等的加载问题
b.iframe无刷新文件上传
c.iframe跨域通信
缺点:
a.iframe会阻塞主页面的Onload事件
b.无法被一些搜索引擎索引到
c.页面会增加服务器的http请求
d.会产生很多页面,不容易管理。
8.请阐述table的缺点
a.太深的嵌套,比如table>tr>td>h3,会导致搜索引擎读取困难,而且,最直接
的损失就是大大增加了冗余代码量。
b.灵活性差,比如要将tr设置border等属性,是不行的,得通过td
c.代码臃肿,当在table中套用table的时候,阅读代码会显得异常混乱
d.混乱的colspan与rowspan,用来布局时,频繁使用他们会造成整个文档顺
序混乱。
e.不够语义
9.简述一下src与href的区别
src用于替换当前元素;href用于在当前文档和引用资源之间确立联系。
src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前
标签所在位置
href是HypertextReference的缩写,指向网络资源所在位置,建立和当前元素
(锚点)或当前文档(链接)之间的链接
CSS
1.谈谈你对CSS布局的理解
常见的布局方式:固定布局、流式布局、弹性布局、浮动布局、定位布局、margin
和padding
2.请列举几种可以清除浮动的方法(至少两种)
浮动会漂浮于普通流之上,像浮云一样,但是只能左右浮动。正是这种特性,导
致框内部由于不存在其他普通流元素了,表现出高度为0(高度塌陷)。
a.添加额外标签,例如
<divstyle="clear:both"></div>
b.使用br标签和其自身的html属性,例如
<brclear="all"/>
c.父元素设置overflow:hidden;在IE6中还需要触发hasLayout,例如zoom:
1;
d.父元素设置overflow:auto属性;同样IE6需要触发hasLayout
e.父元素也设置浮动
f.父元素设置display:table
3.请列举几种隐藏元素的方法
a.visibility:hidden;这个属性只是简单的隐藏某个元素,但是元素占用的空间
任然存在。
b.opacity:0;一个CSS3属性,设置0可以使一个元素完全透明,制作出和
visibility一样的效果。与visibility相比,它可以被transition和animate
c.position:absolute;使元素脱离文档流,处于普通文档之上,给它设置一个很
大的left负值定位,使元素定位在可见区域之外。
d.display:none;元素会变得不可见,并且不会再占用文档的空间。
e.transform:scale(0);将一个元素设置为无限小,这个元素将不可见。这个元
素原来所在的位置将被保留。
f.HTML5hiddenattribute;hidden属性的效果和display:none;相同,这个属性
用于记录一个元素的状态
g.height:0;overflow:hidden;将元素在垂直方向上收缩为0,使元素消失。只要
元素没有可见的边框,该技术就可以正常工作。
h.filter:blur(0);将一个元素的模糊度设置为0,从而使这个元素“消失”在页面中。
4.如何让一段文本中的所有英文单词的首字母大写
text-transform:
none|capitalize(将每个单词的第一个字母转换成大写)|uppercase(将每个单词
转换成大写)|lowercase(将每个单词转换成小写)
5.请简述CSS样式表继承
CSS样式表继承指的是,特定的CSS属性向下传递到子孙元素。会被继承下去
的属性如下:
文本相关:font-family,font-size,font-style,font-variant,font-weight,font,
letter-spacing,line-height,color
列表相关:list-style-image,list-style-position,list-style-type,list-style
6.请简述CSS的选择器
元素选择器:*、E、E#id、E.class
关系选择器:E、F、E>F、E+F、E~F
属性选择器:E[att]、E[att="val"]、E[att~="val"]、E[att^="val"]、E[att$="val"]、
E[att*="val"]、E[att|="val"]
伪类选择器:E:link、E:visited、E:hover、E:active、E:focus、E:lang(fr)、E:not(s)、
E:root、E:first-child、E:last-chil等
伪对象选择器:E:first-letter/E::first-letter、E:first-line/E::first-line、
E:before/E::before、E:after/E::after、E::selection
7.CSS伪类与CSS伪对象的区别
CSS引入伪类和伪元素的概念是为了描述一些现有CSS无法描述的东西
根本区别在于:它们是否创造了新的元素(抽象)
伪类:一开始用来表示一些元素的动态状态,随后CSS2标准扩展了其概念范
围,使其成为了所有逻辑上存在但在文档树中却无须标识的“幽灵”分类
伪对象:代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实
际存在于文档树中
8.请简述CSS的权重规则
一个行内样式+1000,一个id+100,一个属性选择器/class类/伪类选择器+10,
一个元素名/伪对象选择器+1。
关系选择器将拆分为两个选择器再计算.
9.请写出多种等高布局
a.假等高列:使用背景图片,在列的父元素上使用这个背景图进行Y轴的铺放,
从而实现一种等高列的假像
b.给容器div使用单独的背景色(固定布局)(流体布局):用元素中的最大
高度撑大其他的容器高度
c.创建带边框的两列等高布局:用border-left来做,只能使用两列。
d.使用正padding和负margin对冲实现多列布局方法:在所有列中使用正的上、
下padding和负的上、下margin,并在所有列外面加上一个容器,设置
overflow:hiden把溢出背景切掉
e.使用边框和定位模拟列等高:但不能使用在多列
f.模仿表格布局等高列效果:兼容性不好,在ie6-7无法正常运行
10.在CSS样式中常使用px、em,各有什么优劣,在表现上有什么
区别?
px是相对长度单位,相对于显示器屏幕分辨率而言的。
em是相对长度单位,相对于当前对象内文本的字体尺寸。
px定义的字体,无法用浏览器字体放大功能。
em的值并不是固定的,会继承父级元素的字体大小,1÷父元素的font-size×需
要转换的像素值=em值。
11.CSS中link和@import的区别是什么?
a.link属于HTML标签,而@import是CSS提供的,且只能加载CSS
b.页面被加载时,link会同时被加载,而@import引用的CSS会等到页面被加
载完再加载
c.import只在IE5以上才能识别,而link是HTML标签,无兼容问题
d.link方式的样式的权重高于@import的权重
e.当使用Javascript控制DOM去改变样式的时候,只能使用link方式,因
为@import眼里只有CSS,不是DOM可以控制
12.position的absolute与fixed共同点与不同点
相同:
a.改变行内元素的呈现方式,display被置为block
b.让元素脱离普通流,不占据空间
c.默认会覆盖到非定位元素上
区别:
absolute的”根元素“是可以设置的,而fixed的”根元素“固定为浏览器窗口。
当你滚动网页,fixed元素与浏览器窗口之间的距离是不变的。
13.position的值,relative和absolute分别是相对于谁进行定位的?
absolute:生成绝对定位的元素,相对于static定位以外的第一个祖先元素进
行定位
fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。(IE6不支持)
relative:生成相对定位的元素,相对于其在普通流中的位置进行定位
static:默认值。没有定位,元素出现在正常的流中
14.CSS3有哪些新特性?
CSS3实现圆角(border-radius),阴影(box-shadow),对文字加特效
(text-shadow),线性渐变(gradient),变形(transform)
增加了更多的CSS选择器多背景rgba,在CSS3中唯一引入的伪元素
是::selection,媒体查询,多栏布局
15.为什么要初始化CSS样式?
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对
CSS初始化往往会出现浏览器之间的页面显示差异。
当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响
最小的情况下初始化。
16.解释下CSSsprites原理,优缺点
CSSSprites其实就是把网页中一些背景图片整合到一张图片文件中,
再利用CSS的“background-image”,“background-repeat”,
“background-position”的组合进行背景定位,
background-position可以用数字精确的定位出背景图片的位置。
优点:
a.减少网页的http请求
b.减少图片的字节
c.解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可
以了,不需要对每一个小元素进行命名
d.更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网
页的风格就可以改变。
缺点:
a.在宽屏,高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易出
现背景断裂
b.CSSSprites在开发的时候,要通过photoshop或其他工具测量计算每一个背
景单元的精确位置
c.在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的
图片
17.解释下浮动和它的工作原理?
a.浮动元素脱离文档流,不占据空间(引起“高度塌陷”现象)
b.浮动元素碰到包含它的边框或者浮动元素的边框停留。
18.浮动元素引起的问题
a.父元素的高度无法被撑开,影响与父元素同级的元素
b.与浮动元素同级的非浮动元素会跟随其后
c.若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显
示的结构
19.什么是FOUC(无样式内容闪烁)?你如何来避免FOUC?
如果使用import方法对CSS进行导入,会导致某些页面在Windows下的IE出
现一些奇怪的现象:
以无样式显示页面内容的瞬间闪烁,这种现象称之为文档样式短暂失效(Flashof
UnstyledContent),简称为FOUC。
原理:当样式表晚于结构性html加载,当加载到此样式表时,页面将停止之前
的渲染。此样式表被下载和解析后,将重新渲染页面,也就出现了短暂的花屏现
象。
解决方法:使用LINK标签将样式表放在文档HEAD中。
20:link、:visited、:hover、:active的执行顺序是怎么样的?
L-V-H-A,l(link)ov(visited)eh(hover)a(active)te,即用喜欢和讨厌两个词来概括
21经常遇到的浏览器兼容性有哪些?如何解决?
a.浏览器默认的margin和padding不同
b.IE6双边距bug
c.在ie6,ie7中元素高度超出自己设置高度。原因是IE8以前的浏览器中会给
元素设置默认的行高的高度导致的
d.min-height在IE6下不起作用
e.透明性IE用filter:Alpha(Opacity=60),而其他主流浏览器用opacity:0.6
f.input边框问题,去掉input边框一般用border:none;就可以,但由于IE6在解
析input样式时的BUG(优先级问题),在IE6下无效
22有哪项方式可以对一个DOM设置它的CSS样式?
a.外部样式表:通过
<link>
标签引入一个外部css文件
b.内部样式表:将css代码放在
<style>
标签内部
c.内联样式:将css样式直接定义在HTML元素内部
23什么是外边距重叠?重叠的结果是什么?
外边距重叠就是margin-collapse。
在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距
可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所
结合成的外边距称为折叠外边距。
折叠结果遵循下列计算规则:
a.两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。
b.两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。
c.两个外边距一正一负时,折叠结果是两者的相加的和。
24rgba()和opacity的透明效果有什么不同?
a.opacity作用于元素,以及元素内的所有内容的透明度,rgba()只作用于元素
的颜色或其背景色。
b.设置rgba透明的元素的子元素不会继承透明效果!