WEB前端面试题整理
2011-11-16 11:20
1、列举你工作中遇到的IE6 BUG,谈谈解决方案。 3、如何用CSS分别单独定义IE6、7、8的width属性。 所有浏览器 通用 height: 100px; IE6 专用 _height: 100px; IE6 专用 *height: 100px; IE7 专用 *+height: 100px; IE7、FF 共用 height: 100px !important; 4、CSS中哪些属性可以同父元素继承。 继承:(X)HTML元素可以从其父元素那里继承部分CSS属性,即使当前元素并没有定义该属性 Color;font-size; 5、你如何理解HTML结构的语意化。 1.去掉或样式丢失的时候能让页面呈现清晰的结构: html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗;<strong>是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的。 2.屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页. 例如,如果你使用的含语义的标记,屏幕阅读器就会“逐个拼出”你的单词,而不是试着去对它完整发音. 3.PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱). 使用语义标记可以确保这些设备以一种有意义的方式来渲染网页.理想情况下,观看设备的任务是符合设备本身的条件来渲染网页. 语义标记为设备提供了所需的相关信息,就省去了你自己去考虑所有可能的显示情况(包括现有的或者将来新的设备).例如,一部手机可以选择使一段标记了标题的文字以粗体显示.而掌上电脑可能会以比较大的字体来显示.无论哪种方式一旦你对文本标记为标题,您就可以确信读取设备将根据其自身的条件来合适地显示页面. 4.搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重. 过去你可能还没有考虑搜索引擎的爬虫也是网站的“访客”,但现在它们他们实际上是极其宝贵的用户.没有他们的话,搜索引擎将无法索引你的网站,然后一般用户将很难过来访问. 5.你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义标记. 因此,如果页面文件的标题被标记,而不是,那么这个页面在搜索结果的位置可能会比较靠后.除了提升易用性外,语义标记有利于正确使用CSS和JavaScript,因为其本身提供了许多“钩钩”来应用页面的样式与行为. SEO主要还是靠你网站的内容和外部链接的。(转载请注明出处:WEB前端开发 www.css88/) 6.便于团队开发和维护 W3C给我们定了一个很好的标准,在团队中大家都遵循这个标准,可以减少很多差异化的东西,方便开发和维护,提高开发效率,甚至实现模块化开发。 6、谈谈以前端角度出发做好SEO需要考虑什么。 1、了解搜索引擎如何抓取网页和如何索引网页 你需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SE robot 或叫 web crawler)如何进行工作,搜索引擎如何对搜索结果进行排序等等。 2、Meta标签优化 主要包括主题(Title),网站描述(Description),和关键词(Keywords)。还有一些其它的隐藏文字比如Author(作者),Category(目录),Language(编码语种)等。 3、如何选取关键词并在网页中放置关键词 搜索就得用关键词。关键词分析和选择是SEO最重要的工作之一。首先要给网站确定主关键词(一般在5个上下),然后针对这些关键词进行优化,包括关键词密度(Density),相关度(Relavancy),突出性(Prominency)等等。 4、了解主要的搜索引擎 虽然搜索引擎有很多,但是对网站流量起决定作用的就那么几个。比如英文的主要有Google,Yahoo,Bing等;中文的有百度,搜狗,有道等。不同的搜索引擎对页面的抓取和索引、排序的规则都不一样。还要了解各搜索门户和搜索引擎之间的关系,比如AOL网页搜索用的是Google的搜索技术,MSN用的是Bing的技术。 5、主要的互联网目录 Open Directory自身不是搜索引擎,而是一个大型的网站目录,他和搜索引擎的主要区别是网站内容的收集方式不同。目录是人工编辑的,主要收录网站主页;搜索引擎是自动收集的,除了主页外还抓取大量的内容页面。 6、按点击付费的搜索引擎 搜索引擎也需要生存,随着互联网商务的越来越成熟,收费的搜索引擎也开始大行其道。最典型的有Overture和百度,当然也包括Google的广告项目Google Adwords。越来越多的人通过搜索引擎的点击广告来定位商业网站,这里面也大有优化和排名的学问,你得学会用最少的广告投入获得最多的点击。 7、搜索引擎登录 网站做完了以后,别躺在那里等着客人从天而降。要让别人到你,最简单的办法就是将网站提交(submit)到搜索引擎。如果你的是商业网站,主要的搜索引擎和目录都会要求你付费来获得收录(比如Yahoo要299美元),但是好消息是(至少到目前为止)最大的搜索引擎Google目前还是免费,而且它主宰着60%以上的搜索市场。 8、链接交换和链接广泛度(Link Popularity) 网页内容都是以超文本(Hypertext)的方式来互相链接的,网站之间也是如此。除了搜索引擎以外,人们也每天通过不同网站之间的链接来Surfing(“冲浪”)。其它网站到你的网站的链接越多,你也就会获得更多的访问量。更重要的是,你的网站的外部链接数越多,会被搜索引擎认为它的重要性越大,从而给你更高的排名。 9、标签的合理使用 7、我们知道可以以外链的方式引入CSS文件,请谈谈外链引入CSS有哪些方式,这些方式的性能有区别吗。 要说出CSS的引入方式,没有什么难度,但要说到为什么使用不同的引入方式,就有些学问在里面了。 CSS的引入方式最常用的有三种, 第一:在head部分加入<link rel="stylesheet" type="text/css" href="my.css"/>,引入外部的CSS文件。 这种方法可以说是现在占统治地位的引入方法。如同IE与浏览器。这也是最能体现CSS特点的方法;最能体现DIV+CSS中的内容与显示分离的思想,也最易改版维护,代码看起来也是最美观的一种。 第二:在head部分加入 <style type="text/css"> div{margin: 0;padding: 0;border:1px red solid;} </style> 这种方法的使用情况要少的多,最长见得就是访问量大的门户网站。或者访问量较大的企业网站的首页。与第一种方法比起来,优点突出,弊端也明显。优点:速度快,所有的CSS控制都是针对本页面标签的,没有多余的CSS命令;再者不用外链CSS文件。直接在HTML文档中读取样式。缺点就是改版麻烦些,单个页面显得臃肿,CSS不能被其他HTML引用造成代码量相对较多,维护也麻烦些。 但是采用这种方法的公司大多有钱,对他们来说用户量是关键,他们不缺人进行复杂的维护工作。 第三:直接在页面的标签里加 <div >测试信息</div> 这种方法现在用的很少,很多公司不了解前端技术的领导还对这种写法很痛恨。认为HTML里不能出现CSS命令。其实有时候使用下也没有什么大不了。比如通用性差,效果特殊,使用CSS命令较少,并且不常改动的地方,使用这种方法反而是很好的选择。 除了这三种常用的CSS引入方式,还有种很多人都没有见过的引入方式 <style type="text/css"> @import url(my.css); </style> 这就是第四种引入方式。在IBM工作的时候,只能使用一种Ajax框架,就是DOJO。而DOJO的CSS引用,就是采用了@import的方式。这种情况非常少,主要用在CSS文件数量庞大的负责的系统中。另外@important本身是一个CSS命令,是放在CSS文件里的,这个跟LINK标签有很大的区别。 8、CSS Sprite是什么,谈谈这个技术的优缺点。 CSSSprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题。 加速的关键,不是降低重量,而是减少个数。传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按byte计算。客户端每显示一张图片都会向服务器发送请求。所以,图片越多请求次数越多,造成延迟的可能性也就越大。 CSS Sprites优缺点 利用CSS Sprites能很好地减少了网页的http请求,从而大大的提高了页面的性能,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因; CSS Sprites能减少图片的字节,曾经比较过多次3张图片合并成1张图片的字节总是小于这3张图片的字节总和。 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率。 更换风格方便,只需要在一张或少张图片上修改图片的颜或样式,整个网页的风格就可以改变。维护起来更加方便。 诚然CSS Sprites是如此的强大,但是也存在一些不可忽视的缺点,如下: 在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内不会出现不必要的背景;这些还好,最痛苦的是在宽屏,高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易出现背景断裂; CSS Sprites在开发的时候比较麻烦,你要通过photoshop或其他工具测量计算每一个背景单元的精确位置,这是针线活,没什么难度,但是很繁琐;幸好腾讯的鬼哥用RIA开发了一个CSS Sprites 样式生成工具,虽然还有一些使用上的不灵活,但是已经比photoshop测量来的方便多了,而且样式直接生成,复制,拷贝就OK! CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的css,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动css。 CSS Sprites非常值得学习和应用,特别是页面有一堆ico(图标)。总之很多时候大家要权衡一下利弊,再决定是不是应用CSS Sprites。 9、以CSS3标准定义一个webkit内核浏览器识别的圆角(尺寸随意) -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;。带动气氛的歌 10、有这么一段HTML,请挑毛病: <P> 哥写的不是HTML,是寂寞。<br><br> 我说:<br>不要迷恋哥,哥只是一个传说 缺少p标记的结束标记。 =========================================================================================== 1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? Doctype声明位于文档中的最前面的位置,处于标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。该标签可声明三种DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。 当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式(quirks mode)。在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器(比如Microsoft IE 4和Netscape Navigator 4)的行为以防止老站点无法工作。 浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML市场营销学课程文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML 4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。 2:行内元素有哪些?块级元素有哪些?CSS的盒模型? 行内元素有:a b span I bem img input select strong 级元素有:div ul ol lidl dt dd h1 h2 h3 h4…p 盒模型:margin border padding width 3.CSS引入的方式有哪些? link和@import的区别是?
两者区别:加载顺序的差别。当一个页面被加载的时候,link引用的CSS会同时被加载,而@import引用的最近能不能去广州CSS会等到页面全部被下载完再被加载。@import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,如: main.css ———————- @import“sub1.css”; @import“sub2.css”; 这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是谨慎使用。 4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高? 5:前端页面有哪三层构成,分别是什么?作用是什么? 网页分成三个层次,即:结构层、表示层、行为层。 网页的结构层(structurallayer)由HTML 或XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P标签表达了这样一种语义:“这是一个文本段。” 网页的表示层(presentationlayer)由CSS 负责创建。CSS 对“如何显示有关内容”的问题做出了回答。 网页的行为层(behaviorlayer)负责回答“内容应该如何对事件做出反应”这一问题。这是Javascript 语言和DOM 主宰的领域。 6:css的基本语句构成是? 8:你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么? 9.如何居中一个浮动元素? 设置容器的浮动方式为相对定位,然后确定容器的宽高,比如宽500 高 300 的层,然后设置层的外边距。 div{Width:500px;height:300px;Margin: -150px 0 0-250px;position:relative;left:50%;top:50%;} 10.有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况! HTML5标签的改变:<header>,<footer>, <dialog>, <aside>, <figure>, <section> 等 IE9以上开始支持 CSS3实现圆角,阴影,对文字加特效,增加了更多的CSS选择器。 11.你怎么来实现下面这个设计图,主要讲述思路 (效果图省略) 13:如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片? 14:你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样? [Javascript] 1:js是什么,js和html 的开发如何结合? 2.怎样添加、移除、移动、复制、创建和查节点 3.怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别 4.面向对象编程:b怎么继承a 5.看看下面alert的结果是什么 view sourceprint?1.function b(x, y, a) { .arguments[2] = 10; .alert(a); } b(1, 2, 3); 如果函数体改成下面,结果又会是什么? a = 10; alert(arguments[2] ); 6.请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象 var obj = parseQueryString(url); alert(obj.key0) // 输出0 7.ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题? 8.什么是闭包?下面这个ul,如何点击每一列的时候alert其index? <ul id=”test”> <li>这是第一条</li><li>这是第二条</li><li>这是第三条</li> </ul> 9.最近看的一篇Javascript的文章是? 10.常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件? 11.说说YSlow(可以详细一点) =========================================================================================== Class 可继承 4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高? 回答:ID 和 CLASS 伪类A标签可以继承 列表 UL LIDL DD DT可继承 优先级就近原则,样式定义最近者为准 载入样式以最后载入的定位为准 优先级为 !important > [ id > class > tag ] Important 比内联优先级高 5:前端页面有哪三层构成,分别是什么?作用是什么? 回答:结构层,表现层,定义层; 6:css的基本语句构成是? 回答:选择器、属性和属性值。 8:你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么? 回答:涉及到效率一般就在IEtext firefox 3.5 软件上测试模拟 IE6 IE7 IE8内核是IE7 的 浏览器PNG8格式背景图透明 JS 报错,浏览器本身的兼容问题有些电脑IE7IE6 下正常,有些提示错误 9.如何居中一个浮动元素? 回答:设置容器的浮动方式为相对定位 然后确定容器的宽高比如宽500 高 300 的层 店铺名字 然后设置层的外边距 .Div { Width:500px ; height:300px; Margin: -150px 0 0 -250px; position: absolute; left:50%; top:50%; } 10.有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况! 回答:HTML5 没有关注CSS3 有关注 比如对多背景图圆角投影等样式的关注 13:如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片? 回答:涉及到人手、分工、同步; 先期团队必须确定好全局样式(globe.css),编码模式(utf-8) 等 编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行); 标注样式编写人,各模块都及时标注(标注关键样式调用的地方); 页面进行标注(例如页面模块开始和结束); CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.css) JS 分文件夹存放命民以该JS 功能为准英文翻译; 图片采用整合的 images.pngpng8 格式文件使用尽量整合在一起使用方便将来的管理 14:你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样? 是策划 UI设计需要转换成程序可实施中的必须的中间环节,这个环节直接关系到页面的正确高效稳定还原策划和UI 设计的效果,同时为程序套接做好程序表现基础载体。这个工作的前景,只能是深造技术流的,模块化管理,新的技术不断更新,对于向后兼容思维的逐步放弃,比如真的淘汰掉IE6后,向前的空间还是有的。前端开发工程师的前景是非常不错的。现在各大IT企业都在招聘这方面的人才。WEB2.0的普及会更加促进本行业本工种的繁荣。 =========================================================================================================== 一、填空题(40分) 1、目前常用的WEB标准静态页面语言是__ ______。(4分)html 2、改变元素的外边距用________,改变元素的内填充用________。(6分)margin padding 3、在Table中,TR是________,TD是________。(6分)行列 4、如果给一行两列的表格(table)定义高度样式,在________标签中定义最合理,最能减少代码的臃肿。(5分)css样式也有说tr 5、对ul li的样式设成无,应该是用什么属性________。(6分)list-styl-type:none; 6、在新窗口打开链接的方法是________。(4分)target=_bank 7、Color:#666666;可缩写为________。(2分)color:#666 8、合理的页面布局中常听过结构与表现分离,那么结构是________,表现是________。(9分)div css 二、选择题(20分) 1 | ||||||
1、列举常用的浏览器类型以及他们使用的内核还有对应的调试工具
常用的有IE(6,7,8,9,10,FF,chrome )
IE常用的调试工具有 IEWebDeveloper (IE9默认有安装)
Firefox大家估计用的最多。firefox
chrome(内核webkit) 自带的有google 开发的内置调试工具。
三者内核各不相同。
其它还有opera,遨游,世界之窗等;
chrome内核跑的比较快,安全。Firefox做调试是最棒的。
常用的有IE(6,7,8,9,10,FF,chrome )
IE常用的调试工具有 IEWebDeveloper (IE9默认有安装)
Firefox大家估计用的最多。firefox
chrome(内核webkit) 自带的有google 开发的内置调试工具。
三者内核各不相同。
其它还有opera,遨游,世界之窗等;
chrome内核跑的比较快,安全。Firefox做调试是最棒的。
4、html5和css3有什么新特性
html5强化了 Web 网页的表现性能,如:nav header section canvas等,语义化更强
css3新特性有阴影特效,圆角处理等,都是非常不错的效果;
5、说出其他浏览器和IE浏览器在页面元素引用有什么区别?
这个和内核有关系,及是否w3c来定制,不同浏览器渲染结果不同。
目前国内还有大部份使用IE6,常常web在制作的时候碰到兼容性的问题:
如:
display-block, padding, margin 等盒子模型比较多。还有不同的字间距等产生的问题;
常用解决的方法:
IE6:_xxx:{}
IE7:*
等处理不IE和其它不同浏览器间的差异;
4、请选择对javascript理解有误的:( )
A. javascript是网景公司开发的一种基于事件和驱动网页脚本语言
B. JScript是javascript的简称
C.FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
D.AJAX技术一定要使用javascript技术
5、在Jquery中下面哪一个是用来追加到指定元素的末尾的?( )
A、insertAfter() B、append() C、appendTo() D、after()
6、在javascript中定义变量 var a=”35”, var b=”7” 运算 a % b的结果为( )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论