html、CSS和js面试题

html、CSS和js面试题


2024年6月2日发(作者:)

Html篇:

1.你做的页面在哪些流览器测试过这些浏览器的内核分别是什么

IE:trident内核

Firefox:gecko内核

Safari:webkit内核

Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核

Chrome:Blink(基于webkit,Google与Opera Software共同开发)

2.每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗

答案:声明位于文档中的最前面的位置,处于标签之前。此标签可告知浏览器文档

使用哪种HTML或XHTML规范。(重点:告诉浏览器按照何种规范解析页面)

模式是什么它和Standards模式有什么区别

答案:

从IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处

理达到在指定浏览器中的程度。

在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差,IE6将对CSS提供更好的支

持,然而这时的问题就来了,因为有很多页面 是基于旧的布局方式写的,而如果IE6支持CSS则将

令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢

在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是

新功能不兼容旧功能时。遇到这种问题时的一个常见做法是增加 参数和分支,即当某个参数为真时,

我们就使用新功能,而如果这个参数不为真时,就使用旧功能,这样就能不破坏原有的程序,又提供

新功能。IE6也是类似 这样做的,它将DTD当成了这个“参数”,因为以前的页面大家都不会去写DTD,

所以IE6就假定如果写了DTD,就意味着这个页面将采用对CSS支持 更好的布局,而如果没有,则采

用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。

区别:

总体会有布局、样式解析和脚本执行三个方面的区别。

盒模型:在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks

模式下,IE的宽度和高度还包含了padding和border。

设置行内元素的高宽:在Standards模式下,给等行内元素设置wdith和height都不会生效,

而在quirks模式下,则会生效。

设置百分比的高度:在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素

没有设置百分比的高度,子元素设置一个百分比的高度 是无效的用margin:0auto设置水平居中:使

用margin:0auto在standards模式下可以使元素水平居中,但在quirks模 式下却会失效。

(还有很多,答出什么不重要,关键是看他答出的这些是不是自己经验遇到的,还是说都是看文章看

的,甚至完全不知道。)

+css的布局较table布局有什么优点

改版的时候更方便只要改css文件。

页面加载速度更快、结构化清晰、页面显示简洁。

表现与结构相分离。

易于优化(seo)搜索引擎更友好,排名更容易靠前。

:img的alt与title有何异同b:strong与em的异同

答案:

a:

alt(alttext):为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。

替换文字的语言由lang属性指定。(在IE浏览器下会在没有title时把alt当成tooltip显示)

b:

title(tooltip):该属性为设置该属性的元素提供建议性的信息。

strong:粗体强调标签,强调,表示内容的重要性

em:斜体强调标签,更强烈强调,表示内容的强调点

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

渐进增强progressiveenhancement:针对低版本浏览器进行构建页面,保证最基本的功能,

然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

优雅降级gracefuldegradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼

容。

区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础

的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;

而渐进增强则意味着朝前看,同时保证其根基处于安全地带。

“优雅降级”观点

“优雅降级”观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有

功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如IE、

Mozilla等)的前一个版本。

在这种设计范例下,旧版的浏览器被认为仅能提供“简陋却无妨(poor,butpassable)”的浏览体验。你可

以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大

的错误之外,其它的差异将被直接忽略。

“渐进增强”观点

“渐进增强”观点则认为应关注于内容本身。

内容是我们建立网站的诱因。有的网站展示它,有的则收集它,有的寻求,有的操作,还有的网站甚

至会包含以上的种种,但相同点是它们全都涉及到内容。这使得 “渐进增强”成为一种更为合理的设

计范例。这也是它立即被Yahoo!所采纳并用以构建其“分级式浏览器支 持(GradedBrowserSupport)”策

略的原因所在。

那么问题了。现在产品经理看到IE6,7,8网页效果相对高版本现代浏览器少了很多圆角,阴影(CSS3),

要求兼容(使用图片背景,放弃CSS3),你会如何说服他

(自由发挥)

7.为什么利用多个域名来存储网站资源会更有效

CDN缓存更方便

突破浏览器并发限制

节约cookie带宽

节约主域名的连接数,优化页面响应速度

防止不必要的安全问题

8.请谈一下你对网页标准和标准制定机构重要性的理解。

(无标准答案)网页标准和标准制定机构都是为了能让web发展的更‘健康’,开发者遵循统一的标准,

降低开发难度,开发成本,SEO也会更好做,也不会因为滥用代码导致各种BUG、安全问题,最终提

高网站易用性。

9.请描述一下cookies,sessionStorage和localStorage的区别

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才

能访问并且当会话结束后数据也随之销 毁。因此sessionStorage不是一种持久化的本地存储,仅仅是

会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除 数据,否则数据是永远不会

过期的。

webstorage和cookie的区别

WebStorage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是

受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,

另外cookie还需要指定作用域,不可以跨域调用。

除 此之外,WebStorage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前

端开发者自己封装 setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是与服

务器进行交互,作为HTTP规范的一部分而存 在,而WebStorage仅仅是为了在本地“存储”数据

而生。

10.简述一下src与href的区别。

答案:

src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。

src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请

求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。

当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图

片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不

是头部。

href是HypertextReference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链

接)之间的链接,如果我们在文档中添加

那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为

什么建议使用link方式来加载css,而不是使用@import方式。

11.知道的网页制作会用到的图片格式有哪些

答案:

png-8,png-24,jpeg,gif,svg。

但是上面的那些都不是面试官想要的最后答案。面试官希望听到是Webp,Apng。(是否有关注新技术,

新鲜事物)

科普一下Webp:WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压

缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。Facebook Ebay等知名网

站已经开始测试并使用WebP格式。

在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。

Apng:全称是“Animated Portable Network Graphics”, 是PNG的位图动画扩展,可以实现png格式的

动态图片效果。04年诞生,但一直得不到各大浏览器厂商的支持,直到日前得到 iOS safari 8的支持,

有望代替GIF成为下一代动态图标准。

12.知道什么是微格式吗谈谈理解。在前端构建中应该考虑微格式吗

答案:

微格式(Microformats)是一种让机器可读的语义化XHTML词汇的集合,是结构化数据的开放标准。

是为特殊应用而制定的特殊格式。

优点:将智能数据添加到网页上,让网站内容在搜索引擎结果界面可以显示额外的提示。(应用范例:

豆瓣,有兴趣自行google)

13.在css/js代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次js请求一般情况下有

哪些地方会有缓存处理

答案:dns缓存,cdn缓存,浏览器缓存,服务器缓存。

14.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给

用户更好的体验。

图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览器顶端

的距离与页面的距离,如果前者小于后者,优先加载。

如果为幻灯片、相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一张优先

下载。

如果图片为css图片,可以使用CSSsprite,SVGsprite,Iconfont、Base64等技术。

如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,

以提高用户体验。

如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需要先行进行图片压缩,

图片压缩后大小与展示一致。

15.你如何理解HTML结构的语义化

去掉或样式丢失的时候能让页面呈现清晰的结构:

html本身是没有表现的,我们看到例如

是粗体,字体大小2em,加粗;是加粗的,不要

认为这是 html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页

面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览 器都有有默认样式,默认样式的目的

也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的。

屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页.

例如,如果你使用的含语义的标记,屏幕阅读器就会“逐个拼出”你的单词,而不是试着去对它完整发音.

PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS

的支持较弱)

使用语义标记可以确保这些设备以一种有意义的方式来渲染网页.理想情况下,观看设备的任务是符合

设备本身的条件来渲染网页.

语义标记为设备提供了所需的相关信息,就省去了你自己去考虑所有可能的显示情况(包括现有的或

者将来新的设备).例如,一部手机可以选择使一段标记了标题 的文字以粗体显示.而掌上电脑可能会

以比较大的字体来显示.无论哪种方式一旦你对文本标记为标题,您就可以确信读取设备将根据其自身

的条件来合适地显示页 面.

搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重

过去你可能还没有考虑搜索引擎的爬虫也是网站的“访客”,但现在它们他们实际上是极其宝贵的用户.

没有他们的话,搜索引擎将无法索引你的网站,然后一般用户将很难过来访问.

你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注

重语义标记.

因此,如果页面文件的标题被标记,而不是,那么这个页面在搜索结果的位置可能会比较靠后.除了提升

易用性外,语义标记有利于正确使用CSS和JavaScript,因为其本身提供了许多“钩钩”来应用页面的样式

与行为.

SEO主要还是靠你网站的内容和外部链接的。

便于团队开发和维护

W3C给我们定了一个很好的标准,在团队中大家都遵循这个标准,可以减少很多差异化的东西,方便

开发和维护,提高开发效率,甚至实现模块化开发。

16.谈谈以前端角度出发做好SEO需要考虑什么

了解搜索引擎如何抓取网页和如何索引网页

你需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SErobot或叫

webcrawler)如何进行工作,搜索引擎如何对搜索结果进行排序等等。

Meta标签优化

主要包括主题(Title),网站描述(Description),和关键词(Keywords)。还有一些其它的隐藏文字比

如Author(作者),Category(目录),Language(编码语种)等。

如何选取关键词并在网页中放置关键词

搜索就得用关键词。关键词分析和选择是SEO最重要的工作之一。首先要给网站确定主关键词(一般

在5个上下),然后针对这些关键词进行优化,包括关键词密度(Density),相关度(Relavancy),

突出性(Prominency)等等。

了解主要的搜索引擎

虽然搜索引擎有很多,但是对网站流量起决定作用的就那么几个。比如英文的主要有Google,Yahoo,

Bing等;中文的有百度,搜狗,有道等。不同 的搜索引擎对页面的抓取和索引、排序的规则都不一

样。还要了解各搜索门户和搜索引擎之间的关系,比如AOL网页搜索用的是Google的搜索技术,MSN

用的是Bing的技术。

主要的互联网目录

OpenDirectory自身不是搜索引擎,而是一个大型的网站目录,他和搜索引擎的主要区别是网站内容

的收集方式不同。目录是人工编辑的,主要收录网站主页;搜索引擎是自动收集的,除了主页外还抓

取大量的内容页面。

按点击付费的搜索引擎

搜索引擎也需要生存,随着互联网商务的越来越成熟,收费的搜索引擎也开始大行其道。最典型的有

Overture和百度,当然也包括Google的广告项目 GoogleAdwords。越来越多的人通过搜索引擎的点

击广告来定位商业网站,这里面也大有优化和排名的学问,你得学会用最少的广告投入获得最多的 点

击。

搜索引擎登录

网站做完了以后,别躺在那里等着客人从天而降。要让别人找到你,最简单的办法就是将网站提交

(submit)到搜索引擎。如果你的是商业网站,主要的搜索 引擎和目录都会要求你付费来获得收录

(比如Yahoo要299美元),但是好消息是(至少到目前为止)最大的搜索引擎Google目前还是免

费,而且它主 宰着60%以上的搜索市场。

链接交换和链接广泛度(LinkPopularity)

网页内容都是以超文本(Hypertext)的方式来互相链接的,网站之间也是如此。除了搜索引擎以外,

人们也每天通过不同网站之间的链接来 Surfing(“冲浪”)。其它网站到你的网站的链接越多,你也

就会获得更多的访问量。更重要的是,你的网站的外部链接数越多,会被搜索引擎认为它的重 要性

越大,从而给你更高的排名。

合理的标签使用

Css篇:

1.有哪项方式可以对一个DOM设置它的CSS样式

外部样式表,引入一个外部css文件

内部样式表,将css代码放在标签内部

内联样式,将css样式直接定义在HTML元素内部

都有哪些选择器

派生选择器(用HTML标签申明)

id选择器(用DOM的ID申明)

类选择器(用一个样式类名申明)

属性选择器(用DOM的属性申明,属于CSS2,IE6不支持,不常用,不知道就算了)

除了前3种基本选择器,还有一些扩展选择器,包括

后代选择器(利用空格间隔,比如div.a{})

群组选择器(利用逗号间隔,比如p,div,#a{})

那么问题来了,CSS选择器的优先级是怎么样定义的

基本原则:

一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。

复杂的计算方法:

o

o

o

用1表示派生选择器的优先级

用10表示类选择器的优先级

用100标示ID选择器的优先级

.spanvar优先级1+10+10+1

span#i优先级1+100+10+1

#xxxli优先级100+1

那么问题来了,看下列代码,

标签内的文字是什么颜色的。

1

6

7

8

9

123

10

11

答案:red。与样式定义在文件中的先后顺序有关,即是后面的覆盖前面的,与在

中的先后关系无关。

中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内

最基本的:

设置display属性为none,或者设置visibility属性为hidden

技巧性:

设置宽高为0,设置透明度为0,设置z-index位置在-1000

4.超链接访问过后hover样式就不出现的问题是什么如何解决

答案:被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺

序:L-V-H-A(link,visited,hover,active)

5.什么是Css Hackie6,7,8的hack分别是什么

答案:针对不同的浏览器写不同的CSScode的过程,就是CSShack。

示例如下:

1 #test {

2 width:300px;

3 height:300px;

4

5 background-color:blue; /*firefox*/

6 background-color:red9; /*all ie*/

7 background-color:yellow0; /*ie8*/

8 +background-color:pink; /*ie7*/

9 _background-color:orange; /*ie6*/ }

10 :root #test { background-color:purple9; } /*ie9*/

11 @media all and (min-width:0px){ #test {background-color:black0;} } /*opera*/

12 @media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} } /*chrome and s

afari*/

6.请用Css写一个简单的幻灯片效果页面

答案:知道是要用css3。使用animation动画实现一个简单的幻灯片效果。

1 /**HTML**/

2

3

4 /**css**/

5 .ani{

6 width:480px;

7 height:320px;

8 margin:50px auto;

9 overflow: hidden;

10 box-shadow:0 0 5px rgba(0,0,0,1);

11 background-size: cover;

12 background-position: center;

13 -webkit-animation-name: "loops";

14 -webkit-animation-duration: 20s;

15 -webkit-animation-iteration-count: infinite;

16 }

17 @-webkit-keyframes "loops" {

18 0% {

19 background:url no-repeat;

20 }

21 25% {

22 background:url no-repeat;

23 }

24 50% {

25 background:url no-repeat;

26 }

27 75% {

28 background:url no-repeat;

29 }

30 100% {

31 background:url no-repeat;

32 }

33 }

7.行内元素和块级元素的具体区别是什么行内元素的padding和margin可设置吗

块级元素(block)特性:

总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;

宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;

内联元素(inline)特性:

和相邻的内联元素在同一行;

宽 度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top

/bottom(margin-top/margin-bottom)都不可改变(也就是padding和margin的left和right是可以

设置 的),就是里面文字或图片的大小。

那么问题来了,浏览器还有默认的天生inline-block元素(拥有内在尺寸,可设置高宽,但不会自动换

行),有哪些

答案:


发布者:admin,转转请注明出处:http://www.yc00.com/news/1717325944a2737008.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信