前端面试题整理

1.你能描述当你制作一个网页的工作流程吗?

内容分析:分清展现在网络中内容的层次和逻辑关系

结构设计:写出合理的html结构代码

布局设计:使用html+css进行布局

样式设计:首先要使用reset.css

交互设计:鼠标特效

行为设计:js代码,ajax页面行为和从服务器获取数据

测试兼容性;优化性能。

2.假若你有5 个不同的样式文件(stylesheets), 整合进网站的最好方式是?

考虑重构CSS样式文件,已避免重复的css

3.你如何对网站的文件和资源进行优化?

 首先我会试图减少静态文件和资源,比如使用css精灵(sprite),创建一个大的sprite图代替多张图片。然后可以考虑用svg图片代替png、jpg图片。也可以用css实现一些图片的重用,比如图片边框。

4.请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)

1 减少感知时间,添加一些视觉上的反馈,比如添加进度条等。

2 先导入静态文件

3 减少加载文件的数量,整合js文件称单一文件,整合css文件为单一文件,减少浏览器请求数量。

4 浏览的地方才加载

5.请解释CSS 动画和 JavaScript 动画的优缺点。

 CSS3的动画的优点:
  1.在性能上会稍微好一些,浏览器会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画)
  2.代码相对简单
  但其缺点也很明显:
  1.在动画控制上不够灵活
  2.兼容性不好
  JavaScript的动画正好弥补了这两个缺点,控制能力很强,可以单帧的控制、变换,同时写得好完全可以兼容IE6,并且功能强大。

6.`doctype`(文档类型)的作用是什么?

DocType Declaration。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。

7.浏览器标准模式(standards mode) 、几乎标准模式(almoststandards mode)和怪异模式(quirks mode) 之间的区别是什么?

怪异模式:浏览器使用自己的方式解析渲染页面,在不同的浏览器会显示不同的样式。

标准模式:浏览器使用w3c的标准解析渲染页面

通过document.compatMode的值可以知道当前用的是什么模式,BackCompat:怪异模式,CSS1Compat:标准模式

8.HTML和XHTML 有什么区别?

HTML4.01里面有两大种规范,每大种规范里面又各有三种小规范,HTML4.01里面规定了普通、XHTML两大种规范。HTML觉得自己有些规定不严谨,比如标签是否可以使用大写字母,所以制定了XHTML,X代表严格的。

9.如果页面使用'application/xhtml+xml' 会有什么问题吗?

一些老的浏览器不支持,实际上,任何最新的浏览器都将支持application/xhtml+xml媒体类型。

10.如果网页内容需要支持多语言,你会怎么做?

使用utf-8这样的支持多种语言的编码。

11.在设计和开发多语言网站时,有哪些问题你必须要考虑?

字符编码,布局不同语言内容所需要的宽高

12.`data-` 属性的好处是什么?

绑定DOM强相关数据,js传递数据

13. HTML5 看作做一个开放平台,那它的构建模块有哪些?

<header>,<nav>,<main>,<section>,<article>,<aside>,<footer>

14. 请描述`cookies`、`sessionStorage`和 `localStorage` 的区别。

共同点:都是保存在浏览器端,且同源的。

区别:

1.cookie数据始终在同源的http请求中携带,即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会把数据发送给服务器,仅在本地保存。

2.cookie还有path的概念,可以限制cookie只属于某个路径下。

3.存储大小限制也不同,cookie数据不能超过4k。sessionStorage和localStorage可以达到5M或更多。

4.数据有效期不同,sessionStorage仅在当前浏览器窗口关闭前有效localStorage始终有效,窗口或浏览器关闭也一直保存。Cookie在设置的过期时间之前一直有效。

5.作用域不同,sessionStorage在不同的浏览器窗口间不能共享,即使是同一个页面。localStorage在所有同源窗口中都是共享的。Cookie也是同源窗口共享的。

15.请解释`<script>`、`<scriptasync>` 和`<script defer>` 的区别。

包含在script内部的js代码将被从上至下依次执行,页面的处理会停止。

async:表示应该立即下载脚本,但不妨碍页面中的其它操作。只对外部脚本文件有效。

defer:表示脚本可以延迟到文档完全被解析和显示之后再执行,只对外部脚本有效。不会影响页面的构造。

16.为什么通常推荐将CSS `<link>` 放置在`<head></head>` 之间,而将JS `<script>` 放置在`</body>` 之前?你知道有哪些例外吗?

在文档的<head>元素中包含的文件,意味着文件中代码都被下载,解析完之后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。页面的渲染需要在css文件下载完成后执行。Script放在<head>之间会导致呈现页面是出现明显的延迟,所以放在</body>之前。

17.CSS 中类(classes) 和ID 的区别。

css文件书写时,ID加前缀“#”,class用“.”。id在一个页面中只可以使用1次,class可以被多次引用。

18. 请问"resetting" 和"normalizing" CSS 之间的区别?你会如何选择,为什么?

都是为了解决不同浏览器一些默认样式的不同

Reset重置所有样式,normalize只做适当重置

19.请解释浮动(Floats) 及其工作原理

通过float:left或float:right,可以将指定元素浮动到左侧或右侧。

浮动的元素脱离标准流。行内元素浮动后可以设置宽和高。如果父元素只有浮动的子元素,那么父元素高为0

浮动的元素会相互贴靠,这会导致一些问题,需要清楚浮动。

浮动元素的字围效果。

20.描述`z-index`和叠加上下文是如何形成的。

处理的是z轴上元素重叠显示哪个的问题。

z-index值表示谁压着谁。数值大的压着小的,z-index没有单位,默认为0.

只有定位了得元素才能有z-index值。

值相同,写在后面的压住别人。

从父现象。

21.列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。

1.给浮动的元素的祖先元素加高。

2.隔墙法:两个盒子之间加一个具有clear:both的盒子。

3.内墙法:使用伪元素,::after,::before,里面加clear:both

4.父盒子加overflow:hidden

22.请解释CSS sprites,以及你要如何在页面或网站中实现它。

Css sprite 是一种css图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分。优点就是减少了http请求。借助fireworks工具,找到x和y的值,然后,background-position: –x -y;

23.你最喜欢的图片替换方法是什么,你如何选择使用。

1.text-indent一个非常大的负值。

2.外盒子放文本,position:relative,内盒子放图片position:absolute;width:100%;height:100%;

24.你会如何解决特定浏览器的样式问题?

统一默认样式,margin,padding等。-webkit-等前缀写法。

25.如何为有功能限制的浏览器提供网页?

26.有哪些的隐藏内容的方法(如果同时还要保证屏幕阅读器可用呢)?

和23题类似吧。details和summary

27.请解释浏览器是如何判断元素是否匹配某个CSS 选择器?

浏览器先产生一个元素集合,这个集合往往由最后一个部分的索引产生。然后向上匹配,如果不符合上一个部分,就把元素从集合中删除,直到整个选择器都匹配完。

body.ready #wrapper > .lol233

先把所有 class 中有 lol233 的元素拿出来组成一个集合,然后上一层,对每一个集合中的元素,如果元素的 parent id 不为 #wrapper 则把元素从集合中删去。 再向上,从这个元素的父元素开始向上找,没有找到一个 tagName 为 body 且 class 中有 ready 的元素,就把原来的元素从集合中删去。
至此这个选择器匹配结束,所有还在集合中的元素满足。

28.请描述伪元素(pseudo-elements) 及其用途。

CSS伪元素用于向某些选择器设置特殊效果。清除浮动。

29.请解释你对盒模型的理解,以及如何在CSS 中告诉浏览器使用不同的盒模型来渲染你的布局。

30.请解释```* { box-sizing: border-box; }``` 的作用,并且说明使用它有什么好处?

31.请罗列出你所知道的display 属性的全部值

32.请解释inline 和inline-block 的区别?

33.请解释relative、fixed、absolute 和 static 元素的区别

相对定位就是微调元素的位置。让元素相对于自己原来的位置,进行位置调整。不脱离标准流。

绝对定位脱离标准流,不需要display:block就可以设置宽高了。

绝对定位的参考点,如果用top描述,那么定位参考点就是页面的左上角,而不是浏览器的左上角。

如果用bottom描述,那么就是浏览器首屏窗口尺寸,对应的页面的左下角。

一个绝对定位的元素,如果父辈元素中出现了也定位了的元素,那么将以父辈这个元素,为参考点。

固定定位,就是相对浏览器窗口定位。页面如何滚动,这个盒子显示的位置不变。固定定位脱标!

34.CSS 中字母'C' 的意思是叠层 (Cascading)。请问在确定样式的过程中优先级是如何决定的(请举例)?如何有效使用此系统?

1) 先看有没有选中,如果选中了,那么以(id数,类数,标签数)来计权重。谁大听谁的。如果都一样,听后写的为准。

2) 如果没有选中,那么权重是0。如果大家都是0,就近原则。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值