在面试中如何评估应试者对HTML / CSS的了解?[关闭]


44

我正在尝试确定一些不错的面试问题,以评估人们从事Html / CSS工作的能力,但是该主题涉及面非常广泛,我不确定我可以问什么样的问题来正确评估某人的HTML / CSS知识。

在面试过程中,我可以问什么样的问题来评估候选人的HTML / CSS能力?

理想情况下,我想问几个问题,然后给他们一个真实的场景来应对。


2
你能告诉我你的作品吗?那将是一个很好的选择。
JeffO

确实,但是任何人都可以在家复制和粘贴代码以获取良好的示例。让他们当场回答问题,让您知道他们自己知道什么。
webnoob 2012年

1
@Rachel-非常感谢您的编辑并重新打开。我认为这是该网站的良好资源。
webnoob 2012年

10
如果您不知道要问什么,只需使用一些在线测试(例如http://tests4geeks.com/test/html-css)来验证应聘者的技能。之后,您可以要求他写一些html页面的代码。例如,带有顶部菜单的页面,底部带有许多子项目和页脚。
约瑟夫

问他们对IE的看法。任何必须做的琐碎事情的人都知道这是PITA。;)严重的是,您可以问他们遇到了哪些浏览器错误。
本·瑟利

Answers:


87

HTML和CSS很难面试,原因有以下几个:

  1. 与编程语言相比,它们太基础了,

  2. 他们在很大程度上取决于工作的背景。例子:

    • 如果您创建了Google规模庞大,快速且优化的网站,那么您面试的人就不会忽略CSS精灵。

    • 如果您创建的是XHTML W3C有效网站,则应确保候选人知道XHTML 1.0和XHTML 1.1之间的区别,或者的强制属性是什么<img/>,等等。

    • 如果您创建的网站充满骇客,那么您应该向受访者询问他们将如何进行此类骇客,如何为不同的浏览器提供不同的CSS等。

    • 等等

  3. 如果这是纯粹的HTML和CSS工作,那么该人员一方面必须与设计师合作,另一方面需要与开发人员合作。他们必须了解HTML和CSS,但更有价值的是他们与这些人进行交互的能力,以及了解设计人员的需求,开发人员的要求以及HTML和CSS的约束的能力。

    例如,他们必须知道如何以这样的方式构造HTML,以便JavaScript开发人员以后可以轻松添加交互性。


您可能要从一些基本问题开始:

您最喜欢的浏览器是什么?

如果对方回答“ Internet Explorer”,请立即停止采访:您不需要那样的人。

不,我在开玩笑。答案是无关紧要的。相反,您可以问以下问题:

告诉我您在喜欢的浏览器中使用的调试工具。

我主要使用Chrome,每天都使用Developer Tools。这些工具使我能够:

  • 查看来自页面的请求,

  • 研究页面加载所需的时间和相关资源,尤其是DNS查找,等待和接收时间,

  • 研究发送的元素的标题以及缓存指示器,

  • 查看DOM并研究如何应用CSS选择器,

我还使用YSlow作为我的清单,以优化需要高扩展性的网站。当确定服务器是否配置正确(发送正确的标头等)时,YSlow也是一个很好的工具。

在Firefox中,我使用Firebug,它与Chrome的开发人员工具非常相似。开发人员工具在Internet Explorer的新版本中也可用,并且还使我能够切换到IE7到IE10兼容性视图。最后一个功能非常有用,因为如果没有它,我将被迫安装多个虚拟机以进行传统测试,或者更多地使用Litmus之类的付费服务。

请给我解释一下什么<dl/>标签?该标签的预期用途是什么?在实践中如何使用它?您如何看待这种扩展用法?

在这里,您希望该人能够<dl/>为字典进行解释,将一个键<dt/>与一个或多个值相关联<dd/>。尽管此标签的主要用途纯粹与语义相关,但实际上,它被广泛用于替换表,PHPBB3是一个很好的例子。当表格使页面的显示速度变慢时,这是一件好事,但必须谨慎使用:不仅在许多情况下表格仍然适用于更好地描述数据,而且还有其他手段,例如普通的列表,无需使用即可描述内容<dl/>

固定布局和流体布局有什么区别?各自的优缺点是什么?

固定布局具有元素的预定义宽度。流畅布局的元素取决于页面的宽度。

固定的布局使页面设计更加容易,尤其是在有很多全角图形时。即使没有图形,也更容易,因为您只关心精确的情况。例如,Programmers.SE是固定布局的网站,用于显示问题和答案的列始终具有相同的大小。如果此列使用流畅的布局,则会产生问题:在小屏幕上,文本将不可读,因为行太短,而在大屏幕上,行将变得非常大,因此文本也将不可读。

固定版式的问题在于,它适用于一些最常用的分辨率,而其他方面或多或少会失败。由于采用了非常大的宽显示器,并且在小型移动设备上使用互联网的情况越来越多,这一点变得尤为重要。

流畅的布局可以帮助实现这一点,但是对于此类网站而言,设计更加困难。在某些项目管理不善的情况下,这可能导致HTML和CSS遭到黑客入侵,页面过大,可维护性差,并且在开发过程中会导致更高的成本和错过最后期限。

在页面布局混乱的情况下,如何避免出现一列文字太大而无法阅读的情况?

您可以使用max-width属性来限制文本区域的宽度。

您对这段代码有什么看法<p color="Red" align="Center">Text here</p>

该段代码在将表示逻辑混合到HTML中时存在缺陷。由于多种原因,必须将表示逻辑放入CSS中:

  • 它有助于分离问题和清除代码,这意味着以后的维护成本较低,
  • 它使样式可以在页面之间重复使用(出于可维护性的考虑),这有助于确保您在整个网站上使用相同的样式,
  • 由于CSS文件将被缓存,因此它有助于减少带宽。

在经过一些基本问题之后,您可能会问一些更棘手的问题:

当这些颜色或字体应用于无法由单个选择器定位的多个元素时,如何避免在CSS中复制颜色或字体?有缺点吗?

您可以通过使用CSS预处理程序(例如Sass或LESS)来实现。它们允许在变量中定义颜色,字体和样式的其他部分,您以后可以在样式中使用它们。

CSS预处理器的缺点是:

  • 他们有时需要更改开发和部署工作流程,以便在浏览器中拥有最新的CSS代码,

  • 他们只有少数开发人员知道,这使得新人以后更难以加入或维护该项目,

  • 没有适用于Sass或LESS的好的IDE和快速的IDE,并且最流行的IDE内的集成令人失望。

给我一个hrefCDN上图像值的示例,因为该图像显示在可以同时通过HTTP和HTTPS访问的网站上。

由于HTTPS也需要每个被调用资源都位于HTTPS上(否则,在许多情况下,将向用户显示安全警告),因此无法将链接指定为http://cdn.example.com/image.png。要正确链接到图像,//cdn.example.com/image.png必须使用;然后,浏览器将前置http:https:取决于上下文。

鉴于无法优化页面大小和网站上的请求数量,无法更改内容或添加AJAX,您如何给用户留下网站更快的印象?从HTML角度来看涉及什么?

如果使用HTTP 1.1,则该页面可能已分块。这意味着第一部分的显示速度更快,给人的印象是网站比实际网站要快。在HTTP 1.0中无法进行分块传输编码,这意味着在这种情况下无需执行任何操作。

从HTML角度来看,要能够提供分块的内容,就需要对元素进行重新排序,将最关键的元素放在文件顶部(这并不意味着它们必须出现在页面顶部)。例如,在电子商务网站上,当用户想要查看产品的详细信息时,第一块可以包含<head/>和产品详细信息。下一块可能包含主要元素,例如网站徽标,主菜单,版权等。最后一块可能包含“同时购买此商品的人”部分,产品的评论和评分, “在Facebook上共享”等。


最后,您可以要求应聘者在真实场景中工作。它可能是复杂的场景,就像下面最简单的场景一样,这是人们必须处理CSS Sprite或其他高级优化技术,浏览器不一致等问题的复杂场景。

请创建一个带有两个区域的XHTML页面:左边一个带有列表的区域,右边一个带有文本的区域。两个区域由垂直线分隔,该垂直线从页面的顶部延伸到底部。列表和文字的大小各不相同,您无法预测哪个高度最大。您不能使用<table/>

实际上,这很简单,但是可以显示人是否具有思考身高的能力。没有经验的候选人将创建float:left区域和border-left:solid 1px #ccc;区域,但是忘记将边框添加到左侧区域并进行扩展,以使两个边界位于同一位置。


5
太酷了,我真的学到了一些东西:)。
Radu Murzea

23
+1,如果此人回答“ Internet Explorer”,请立即停止采访。
松饼人

10K喜欢...我喜欢
Rama Rao M

20

以下是有关CSS的一些问题:

  1. CSS盒子模型。边距,填充等。IE模型与W3C模型。如何在两者之间切换?它们的优缺点是什么?
  2. CSS定位。一个元素“在流中”和“在流外”是什么意思
  3. inline-block和其他显示值。display: none;和之间的区别visibility: hidden; (对于刚接触CSS的人来说,这是一个很好的简单问题)
  4. inline-blockfloat布局。
  5. 选择器。
  6. CSS重置。为什么需要它们以及它们完成了什么?
  7. 媒体查询和响应式设计。
  8. 如何组织样式以及如何减少选择器的数量。LESS,Sass和其他CSS预处理器。面向对象的CSS。

还有一些关于HTML的问题:

  1. Doctype和浏览器模式。
  2. 为什么一些标签比其他(更优选emVS i为例)?
  3. 使HTML和CSS易于管理和维护的基本原则是什么?

总的来说,我更加强调CSS,因为它是许多人难以掌握和有效使用的领域。我遇到了很多候选人,他们在简历中都加入了“ CSS”,但却无法回答任何问题。大多数人直截了当地说:“不,我知道 CSS足以应付它,但不足以谈论它。”

有时候,给受访者一个简单的任务来完成是个好主意。说,设计一个具有布局和块样式的简单页面,该页面支持多种屏幕尺寸并进行相应调整。大约需要一两个小时,候选人应解释自己的工作以及原因。

面试祝你好运!


+1。出色的答案,比我的答案更完整,更短,更有组织。
阿森尼·穆尔琴科(Arseni Mourzenko)2012年

8

如果您进行现场采访,那么最好的方法是要求开发人员编写一些html / css代码。

示例(在实际开发中很常见)。要求开发人员使用以下代码编写页面的html / css代码:

  1. 流体宽度。
  2. 标头高度为100px;
  3. 标题右上角的登录按钮
  4. 左侧和右侧面板的宽度为100px,高度为200px;
  5. 文章文本的中心面板。
  6. 页脚,始终位于底部。即使文章有1行。

UPD:当然,请开发人员仅使用div(无表)编写代码。

它看起来应该像这样:

CSS / HTML测试

但在进行实时面试之前,我建议您在线测试应聘者。因为在线测试应聘者并仅邀请熟练的开发人员来参加面试比花时间在每个应聘者上都容易。


1
请注意,测试要求仍然不完整。在现实生活中,开发商将知道表的布局是否可以使用与否,是否position:absolute被允许,等等
Arseni Mourzenko

4

我参加了一些网页设计师的采访,我们所做的就是在纸上打印出一个非常简单的Blog布局,然后要求应聘者在10分钟左右的时间内在页面上写下一些HTML和/或CSS,我们对他们如何编写代码有基本的了解。这让我们知道是否有人真正了解CSS。我们只是在寻找诸如float或table之类的基本内容,而我们却解释说它并不一定是完美的。

大量的人声称他们有多年使用CSS的经验,但是当被迫将其写出来时,他们却在写诸如“ layout: floating; direction: up;”之类的荒谬猜测或其他类似的胡言乱语。超过1个“ CSS Ninja”甚至都没有正确的语法,div(margin=5)“ la ”。这让我大开眼界,看看有多少人正直地躺在采访中。与CSS相比,与CSS相比看起来更容易说谎。您可能对CSS一无所知,但是可以进行一些Google搜索,并能够很快地使用适当的术语。例如,您不能真正使用OOP等更高级别的概念来有效地做到这一点。


2

有一个在线测试,您必须在5分钟内列出HTML标记CSS属性

尽管这不是一项全面的测试,但可以让您知道候选人是否对HTML / CSS足够熟悉。

关于这个问题,您可以使用示例代码进行测试,并要求他检测语法/结构错误。

至于现实生活中的情况,这完全取决于应聘者将在您公司中从事什么工作。如果您只需要前端开发人员,则可以要求随机主题的网站设计。


1
这些都是无关紧要的,很容易玩。任何白痴都可以在几天内全心全意地学习这些列表并获得考试成绩。
tdammers

正如我说的那样,这不是完全确定的,但是您的评论可以适用于任何考试,只要考生事先知道该考试即可。
XGouchet,2012年

万无一失* :
Cracker

这些测试太可怕了>您可以
猛烈敲击

1
我必须说,这不是一个非常有用的测试...我已经对HTML / CSS / JS进行了多年编程,但是我不能为每个标签命名。我多年来未使用过的标签列表比我使用过的标签列表长!
罗伯·吉本斯

2

适用于编程语言和标记语言的一种测试类型是代码审查。创建一个小样本(20或30行),混合使用语法错误,逻辑错误,极端情况,可疑的不良样式……然后让应聘者识别出使他们感到可疑的任何内容。

正确使用这种测试很重要:与任何面试问题一样,应试者处理任务的方式很重要,而不仅仅是结果。

我不会发布测试,但是会提示一些如何将其应用于CSS的提示:

  • 语法错误:错过了一些分号。另外,您可以错过一些可选的(可争论的风格)并查看候选人是否发表评论。
  • 逻辑错误:将前缀属性放在非前缀属性之后。这也测试了对CSS3的熟悉程度,并可能引发有关标准制定方式的讨论。
  • 极端情况:例如具有3个值的边距-您会惊讶地发现有很多人不知道这是可能的。如果候选人不发表评论,您可以询问其解释方式,以确保他们是出于知识而不是无知而忽略了它。
  • 另一个极端情况:练习您最喜欢的两个或三个IE7错误。这将使那些有战斗伤痕的人(至少应发现其中的伤痕)与经验不足或仅使用Webkit的人区分开。
  • 风格:过度的专一性,遗漏empx等。研究过访谈语法的人可能不会抓住其中的很多。

0

从个人经验以及与其他开发人员的合作中,我认为关于HTML和CSS的问题不会使知道自己在说什么的人与知道自己在实际做的人无关。

我建议根据您公司需求的实际经验来进行模拟测试/原型设计。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.