2019独角兽企业重金招聘Python工程师标准>>>

有这么一段HTML,请挑毛病:

<P><span style="color: #008000;"></span>
;nbsp;&nbsp;哥写的不是HTML,是寂寞。<br><br>  &nbsp;&nbsp;我说:<br>不要迷恋哥,哥只是一个传说

这是原来雅虎一道笔试题(文字变了变),用了很多年了,还没有一个人完全答对过。

============== 解答部分 ================

出这道题的动机是,太多人觉得HTML太简单,但它恰恰又是前端开发中最基础最重要的部分。HTML结构设计的合不合理,直接影响到代码易不易维护,灵不灵活,同时事关网页性能,协作效率。碰到不少人认为前端开发就是javascript开发,大错特错啊。javascript, html, css这三个前端开发的基础支柱,性质完全不同又紧密关联,对它们的正确理解,合理应用是专业与非专业的区别。有些后端工程师可以写出很漂亮的JS,但他们真的不懂怎么合理的把js, html, css结合起来应用。对html的准确把握,不像学一般的编程语言那样,而是建立在丰富实践经验和体会的基础上,是前端的工程师的基本功。

这不是一道较真题或是装逼题,正经一道“画鸡蛋”的题,考的是基本功。代码如其人,对一行代码的理解足以反映出他的前端开发素养。

言归正传。这道题的考点:

考点1:html和 xhtml的区别

这行代码在html 4.01 strict下是完全正确的,在xhtml 1.0 strict下是错误一堆的。所以明显是一个考点。在xhtml下所有标签是闭合的,p,br需要闭合, 标签不允许大写,P要小写。同时nbsp和br必须包含在容器里。html下这些都不是错。p在html里是可选闭合标签,是可以不用闭合的。
这个考点告诉你xhtml是多么苛刻。这是基本考点,答对,你能拿到60分。

考点2:考样式分离

用nbsp控制缩进是不合理的。应该用CSS干这事。所以应该删掉nbsp

考点3:合理使用标签

br是强制折行标签,p是段落。原题用连续的br制造两个段落的效果,效果是达到了,但显然用的不合理,段落间距后期无法再控制。正确的做法是用两个p表现两个段落。“我说”后面是正常的文字折行用br是合理的。

上面全答对,你就能拿到100分。

对原题改进的结果:

<p>哥写的不是HTML,是寂寞。<p>我说:<br> 不要迷恋哥,哥只是一个传说
<p>哥写的不是HTML,是寂寞。</p><p>我说:<br /> 不要迷恋哥,哥只是一个传说</p>

加分:合理的用语义化标签

在前面的基础上合理的用语义化标签,对内容进行必要的标记,是加分的。但过度的使用标签,就画蛇添足了。如“我说”的话,可以用q标签标注。

<p>哥写的不是HTML,是寂寞。
<p>我说:<br> <q>不要迷恋哥,哥只是一个传说</q>

我觉得这就够了,如果再进一步,“我”用cite标注,“HTML” 用abbr或acronym标注(至于再讨论abbr和acronym的区别就太较真了),也OK。再复杂就没必要了。

<p> 哥写的不是<abbr title=”Hyper Text Markup language”>HTML</abbr>,是寂寞。
<p><cite> 我</cite>说:<br> <q>不要迷恋哥,哥只是一个传说</q>

转载于:https://my.oschina.net/zzlzheng/blog/685900

好一道简单的html试题相关推荐

  1. 从一道简单的面试题考查应聘者的技术能力

    导读:在日常的招聘中,一个比较头疼的问题是,如何考察应聘者的技术能力,本文从一个简单的笔试题的角度,谈谈自己不成熟的经验. 面试观察中发现,很多开发同学平时只注重各种框架.新技术的学习,对于基本功不够 ...

  2. 一道简单的面试题:竟然有90%的程序员不能把这个算法完全写正确。。。

    前段时间,在论坛上看到有统计说有90%的程序员不能够写对简单的二分法.二分法不是很简单的吗? 这难道不是耸人听闻? 其实,二分法真的不那么简单,尤其是二分法的各个变种. 最最简单的二分法,就是从一个排 ...

  3. 转自知乎 知乎ID@方志宏 记一道简单的Java面试题

    记一道简单的Java面试题 这可能是历史上最简单的一道Java面试题 题目很简单,完成代码,判断一个整数是否是奇数 public boolean isOdd(int i) 相信相当数量的人都在已经准备 ...

  4. python编辑距离正则匹配_详解一道腾讯面试题:编辑距离

    原标题:详解一道腾讯面试题:编辑距离 来自公众号:labuladong 预计阅读时间:8 分钟 前几天在网上看到一份鹅场的面试题,算法部分大半是动态规划,最后一题就是写一个计算编辑距离的函数,今天就专 ...

  5. 每个人都应该了解的金融小知识 -- 利率计算 (含一道码农面试题)

    本文包含每个人都应该了解的金融小知识 -- 利率的计算方法, 以及在推导过程中衍生出的一道码农面试题. 欢迎大家留言讨论(本文首发于微信公众号 "唐磊Coder"(微信ID: ta ...

  6. 软件测试菜鸟还是大神,一道测试用例设计笔试题就能测出!

    软件测试菜鸟还是大神,一道测试用例设计笔试题就能测出!为什么这么说呢?是因为你们的思路有着天壤之别,来看吧: 相信不少朋友在笔试的时候都遇到过测试用例设计的笔试题.通常是一个登陆页面,上面有用户名,密 ...

  7. 一道指针压轴笔试题讲解 (进阶指针必看)

    今天我来给大家讲解一道指针压轴笔试题,同时也是进阶指针知识必会的一道题.相信大家在认真梳理清楚这道题后,对指针的知识了解定会更上一层楼 ~ 话不多说,上题目 : 请问程序输出结果是什么 ? 相信大家一 ...

  8. 一道简单的Fibonacci

    一道简单的Fibonacci 时间限制: 1 Sec  内存限制: 32 MB 题目描述 有如下数列:F(0) = 7, F(1) = 11, F(n) = F(n - 1) + F(n - 2)   ...

  9. CSU 1785: 又一道简单题

    1785: 又一道简单题 Submit Page    Summary    Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 602 ...

最新文章

  1. linux mv 环境变量,linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用...
  2. VSCODE编译头文件时函数没有定义的解决方案(VSCODE手动链接C文件方法)
  3. linux中用户的分类
  4. VTK:网格之CellEdges
  5. Java常用的一些容器
  6. 布袋除尘器过滤风速多少_滤筒除尘器的过滤风速如何选择?不会的进来看
  7. java的静态如何理解_java中的静态是什么?如何理解?
  8. 360与Bing合作上线英文搜索
  9. java 欧拉_项目欧拉#6 Java协助
  10. Pyqt之exec()和show()与弹出自定义对话框
  11. 【历史上的今天】 5 月 5 日:微软发布 Windows 98 SE ;领英上线;键盘布局的改革者
  12. 谈谈我对Spring Bean 生命周期的理解
  13. qtableview 查询_【转】QTableView显示数据库
  14. 飞凌linux ip修改,linux下面建立GPRS无线MODEM拨号的方法
  15. 滴滴抢单 java_今天我体验了下传说估值100亿美金的「滴滴拉屎」App,出门再也不愁找厕所了...
  16. Python练习题10:斐波那契数列计算
  17. Tcar:智能车之基于mg995型号舵机的驱动控制模块
  18. 精通 CSS+DIV 网页样式与布局 55
  19. 实战goldengate:安装配置+数据初始化+单向DML复制
  20. DP(动态规划)入门(一)

热门文章

  1. oracle复合索引的使用方法,ORACLE复合索引使用 注意事项
  2. vue ---音符跳动
  3. 如何用计算机辅助设计进行设计,计算机辅助设计的功能与分析
  4. 游戏如何响应未成年人保护新规?GME上线未成年人声音识别功能
  5. 3D MAX2018 启动提示:无法加载自定义驱动程序 强制空驱动程序模式
  6. 从燥热到颠覆,618还缺什么?
  7. 对计算机专业专家的访谈,职教名家引领!育才职教中心邀请北师大教授主持计算机网络技术专业群访谈会...
  8. 【论文阅读】【3d目标检测】What You See is What You Get: Exploiting Visibility for 3D Object Detection
  9. python切片冒号的用法
  10. [Latex]特殊符号和花式字体