web前端面试题整理(前端和计算机相关知识)

来源:互联网 发布:qtcreate linux 编辑:程序博客网 时间:2024/06/05 02:49

1. 你能描述一下渐进增强和优雅降级之间的不同吗?

定义:
优雅降级(graceful degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复
渐进增强(progressive enhancement):一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。 
都关注于同一网站在不同设备里不同浏览器下的表现程度

区别:
优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站.而将那些被认为过时或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如 IEMozilla等)的前一个版本。
渐进增强观点则认为应关注于内容本身。请注意其中的差别:我甚至连浏览器三个字都没提。

理解:
"
优雅降级"就是首先完整地实现整个网站,包括其中的功能和效果.然后再为那些无法支持所有功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效.
"
渐进增强"则是从浏览器支持的基本功能开始,首先为所有设备准备好清晰且语义化的html及完整内容,然后再以无侵入的方法向页面增加无害于基础浏览器的额外样式和功能.当浏览器升级时,它们会自动呈现并发挥作用.


2. 浏览器兼容问题:

问题1  不同浏览器的标签默认的外补丁和内补丁不同.
即随便写几个标签,在不加样式控制的情况下,各自的marginpadding差异较大.
解决方法: CCS:   *{margin:0;padding:0}

问题2  块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大  
会使得ie6后面的一块被顶到下一行.
解决方案:float的标签样式中加入display: inline;将其转化为行内属性

问题3  设置较小高度标签(一般小于10px),在IE6IE7,遨游中高度超出自己设置高度
IE6
7和遨游里这个标签的高度不受控制,超出自己设置的高度
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height小于你设置的高度
原因: ie8之前的浏览器都会给标签一个最小默认的行高的高度.即使标签是空的,这个标签的高度还是会达到默认的行高.

问题4  行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug
解决:display:block;后面加入display:inline;display:table;

问题5  图片默认有间距
几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。
解决:使用float属性为img布局

问题6  标签最低高度设置min-height不兼容
因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容
如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px;height:auto !important; height:200px; overflow:visible;}

问题7  透明度的兼容CSS设置
使用hacker
IE6
认识的hacker是下划线_*
IE7,
遨游认识的hacker*

问题8  IEol的序号全为1,不递增
解决: li设置样式{display: list-item}

问题9 ie6,7不支持display:inline-block
解决方法:设置inline并触法haslayout

display:inline-block; *display:inline; *zoom:1

需要web前端课程工具和电子书,可以加: 33105601600(22群已满员,请关注新群)

【内容展示有限,可以加群下载,群文件会定期更新学习资料,以及练手小案例】





0 0
原创粉丝点击