WEB前端开发面试题集锦
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本身是没有表现的,我们看到例如
是粗体,字体大小2em,加粗;是加粗的,不要认为这是html 这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML 点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和HTML结构是不可分割的。2.屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页.
例如,如果你使用的含语义的标记,屏幕阅读器就会“逐个拼出”你的单词,而不是试着去对它完整发音.
3.PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱).
使用语义标记可以确保这些设备以一种有意义的方式来渲染网页.理想情况下,观看设备的任务是符合设备本身的条染网页.
语义标记为设备提供了所需的相关信息,就省去了你自己去考虑所有可能的显示情况(包括现有的或者将来新的设备一部手机可以选择使一段标记了标题的文字以粗体显示.而掌上电脑可能会以比较大的字体来显示.无论哪种方式一文本标记为标题,您就可以确信读取设备将根据其自身的条件来合适地显示页面.
4.搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重.
过去你可能还没有考虑搜索引擎的爬虫也是网站的“访客”,但现在它们他们实际上是极其宝贵的用户.没有他们的
引擎将无法索引你的网站,然后一般用户将很难过来访问.
5.你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义标记.
因此,如果页面文件的标题被标记,而不是,那么这个页面在搜索结果的位置可能会比较靠后.除了提升易用性外,语利于正确使用CSS和JavaScript,因为其本身提供了许多“钩钩”来应用页面的样式与行为.
SEO主要还是靠你网站的内容和外部链接的。(转载请注明出处:WEB前端开发 https://www.360docs.net/doc/277222069.html,/)
6.便于团队开发和维护
W3C给我们定了一个很好的标准,在团队中大家都遵循这个标准,可以减少很多差异化的东西,方便开发和维护,效率,甚至实现模块化开发。
6、谈谈以前端角度出发做好SEO需要考虑什么。
1、了解搜索引擎如何抓取网页和如何索引网页
你需要知道一些搜索引擎的基本工作原理,各个搜索引擎之间的区别,搜索机器人(SE robot 或叫 web cra 何进行工作,搜索引擎如何对搜索结果进行排序等等。
2、Meta标签优化
主要包括主题(Title),网站描述(Description),和关键词(Keywords)。还有一些其它的隐藏文字比如Au 者),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部分加入,引入外部的CSS文件。
这种方法可以说是现在占统治地位的引入方法。如同IE与浏览器。这也是最能体现CSS特点的方法;最能体现DIV+CSS中的内容离的思想,也最易改版维护,代码看起来也是最美观的一种。
第二:在head部分加入
div{margin: 0;padding: 0;border:1px red solid;}
这种方法的使用情况要少的多,最长见得就是访问量大的门户网站。或者访问量较大的企业网站的首页。与第一种方法比起来,优弊端也明显。优点:速度快,所有的CSS控制都是针对本页面标签的,没有多余的CSS命令;再者不用外链CSS文件。直接在文档中读取样式。缺点就是改版麻烦些,单个页面显得臃肿,CSS不能被其他HTML引用造成代码量相对较多,维护也麻烦些采用这种方法的公司大多有钱,对他们来说用户量是关键,他们不缺人进行复杂的维护工作。
第三:直接在页面的标签里加
测试信息这种方法现在用的很少,很多公司不了解前端技术的领导还对这种写法很痛恨。认为HTML里不能出现CSS命令。其实有时候没有什么大不了。比如通用性差,效果特殊,使用CSS命令较少,并且不常改动的地方,使用这种方法反而是很好的选择。
除了这三种常用的CSS引入方式,还有种很多人都没有见过的引入方式
@import url(my.css);
这就是第四种引入方式。在IBM工作的时候,只能使用一种Ajax框架,就是DOJO。而DOJO的CSS引用,就是采用了@im 式。这种情况非常少,主要用在CSS文件数量庞大的负责的系统中。另外@important本身是一个CSS命令,是放在CSS文件里的LINK标签有很大的区别。
8、CSS Sprite是什么,谈谈这个技术的优缺点。
加速的关键,不是降低重量,而是减少个数。传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无计算机统一都按byte计算。客户端每显示一张图片都会向服务器发送请求。所以,图片越多请求次数越多,造成延迟的可越大。
利用CSS Sprites能很好地减少了网页的http请求,从而大大的提高了页面的性能,这也是CSS Spri 的优点,也是其被广泛传播和应用的主要原因;
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,请挑毛病:
哥写的不是HTML,是寂寞。
我说:
不要迷恋哥,哥只是一个传说
缺少p标记的结束标记。
===========================================================================================
1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
Doctype声明位于文档中的最前面的位置,处于标签之前。此标签可告知浏览器文档使用哪种HTML 或XHTML 规范。该标签可声明三种DTD 类型,
格版本、过渡版本以及基于框架的HTML 文档。
当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式(quirks m 标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器(比如Microsoft IE 4和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会等到页面全部被下载完再被加载。@以在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标签的改变:,
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?
- 这是第一条
- 这是第二条
- 这是第三条
9.最近看的一篇Javascript的文章是?
10.常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
11.说说YSlow(可以详细一点)
===========================================================================================
Class 可继承
4.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?回答:I 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设计需要转换成程序可实施中的必须的中间环节,这个环节直接关系到页面的正确高效稳定还原策设计的效果,同时为程序套接做好程序表现基础载体。这个工作的前景,只能是深造技术流的,模块化管理,新的更新,对于向后兼容思维的逐步放弃,比如真的淘汰掉IE6后,向前的空间还是有的。前端开发工程师的前景是非常现在各大IT企业都在招聘这方面的人才。WEB2.0的普及会更加促进本行业本工种的繁荣。
===================================================================================================
一、填空题(40分)
1、目前常用的WEB标准静态页面语言是__ ______。(4分)html
2、改变元素的外边距用________,改变元素的内填充用________。(6分)margin padding
3、在Table中,TR是________,TD是________。(6分)行列
4、如果给一行两列的表格(table)定义高度样式,在________标签中定义最合理,最能减少代码的臃肿。(5分式也有说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做调试是最棒的。
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的结果为
()
A、357
B、57
C、0
D、5
7、下面哪种不属于jquery的筛选?()
A、过滤
B、自动
C、查找
D、串联
8、有这样一个表单元素,想要找到这个hidden元素,下面哪个是正确的?( )
A、visible
B、hidden
C、visible()
D、overflow
9、下面哪个属于javascript的布尔型()
A、1.2
B、“true”
C、false
D、null
10、onload事件是window 的事件,但是在HTML 中指定事件处理程序的时候,
我们是把它写在()标记中的。
A、
B、
C、
我说:
不要迷恋哥,哥只是一个传说