那些前端程序员深信不疑的谣言( HTML 篇)

2017-02-26 12:08:41 +08:00
 FrankFang128

本文不考虑「团队规范」、「可读性」,只谈「语法」。

你了解完语法再去搞什么「团队规范」、「可读性」吧,不要本末倒置。

这里只讨论 HTML 5 ,不讨论 HTML 4.x 和 XHTML ,谨记!

谣言 1 :属性一定要用引号包起来,比如 <div id="test">

正解: HTML 文档写得很清楚,属性有四种写法(突然有茴香豆既视感 /(ㄒoㄒ)/~~)

1 <input disabled>
2 <input value=yes>
3 <input type='checkbox'>
4 <input name="be evil">

有人一定会说加引号「最安全」,骗新人说「引号必须写」很省事啊。

我对此嗤之以鼻。

谣言 2 :自闭合标签一定要以 /> 结尾,比如 <input /> <img />

正解:其实在 HTML 5 里 <input> 才是正确写法,详见 HTML 5 规范文档里的三处

Void elements only have a start tag;
Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single "/" (U+002F) character. This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
Void elements: area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbr

很容易推理出:对于 void elements ,<meta /> 完全可以写成 <meta>,而且是推荐写法。

谣言 3 :所有标签必须闭合,比如 <p></p>

正解:请看 HTML 5 规范文档

A p element's end tag may be omitted if the p element is immediately followed by ...

所以以下写法完全符合要求

<p> 你好,
<p> 我是方方

谣言 4 : HTML 5 文档里必须写 <html> <head><body> 标签

正解:在没有注释的前提下,这三个标签都是可不写的。具体看规范文档。

下面这段 HTML 是合法的 HTML 5

<!DOCTYPE html>
<title>这是一个合法的 HTML 5 文档</title>
<meta charset="UTF-8">
<p>这是一个合法的 HTML 5 文档

以上哪个谣言是你深信不疑的?

12776 次点击
所在节点    HTML
109 条回复
hoythan
2017-02-26 17:35:07 +08:00
科普归科普,上面竟然还有人说要学的是什么情况?对前端工作已经放弃希望了吗?
widewing
2017-02-26 17:57:46 +08:00
茴香豆的茴有这么多种写法啊😯
shijingshijing
2017-02-26 18:00:18 +08:00
@binux 你说的对,我只是举个例子。

刚好想到,这样写的话对爬虫也有影响吧。如果只写个<p>开头,展开成 DOM 树的时候,没有影响么?毕竟解析器是解析器,浏览器是浏览器。

又 PS :我还有好多 PySpider 的问题要问呢。。。 你们的官方 Q&A 哪个是经常用的?是 org 那个网站还是 v2 直接 @召唤?要最迅速的那种
binux
2017-02-26 18:02:34 +08:00
@shijingshijing #63 标准的 HTML5 解析器行为是和浏览器一样的,这比以前好, HTML5 标准为这些行为定义了展开形式。
发邮件
GoBeyond
2017-02-26 18:19:48 +08:00
第三个太不能接受了
感觉就像写 c 花括号写一半一样
另外,最近 v2 上撕逼风气怎么越来越严重了
RobertYang
2017-02-26 18:34:57 +08:00
能显示出来的都是好 html
ltux
2017-02-26 19:14:23 +08:00
所以各大浏览器不得不忍受“不听信谣言的人”写出来的垃圾代码,导致 html 解析动不动就出现各种让人摸不着头脑的怪异行为。还是 xml 好。
g0thic
2017-02-26 19:16:38 +08:00
我都知道啊,然后呢?
g0thic
2017-02-26 19:17:53 +08:00
再说这些不是看了本 HTML5 的书或者一些规范都应该知道的吗?不要总想搞个大新闻啊
yuankui
2017-02-26 19:26:35 +08:00
所以还是楼主厉害咯?
ltux
2017-02-26 19:28:32 +08:00
这玩艺儿不叫谣言,这玩艺儿叫谨慎,毕竟世界上还有一堆人在用不能完全支持 html 5 的浏览器。然而楼主很鸡贼,说只讨论 html5 ,那你还讨论个鸡卜,你丫先把别人说话的语境给排除掉,然后说别人的写法是由于听信谣言所致。请问怎么形容这种行为呢?一个字,贱!
R18
2017-02-26 19:39:24 +08:00
造谣?旧的规范被新的规范代替了就变成了造谣了啊
ihuguowei
2017-02-26 19:45:58 +08:00
楼主说的对,但然并卵呀,习惯了 XHTML 规范了啊, HTML5 放宽了而已。拿这个大书特书,闲得慌,死鱼切图狗观后感。
ihuguowei
2017-02-26 19:49:16 +08:00
看了楼主其他贴,看来您很喜欢跟人“辩论”啊,哎呀,有这时间陪陪老婆孩子不挺好么,然而我是一直单身狗。
stabc
2017-02-26 20:09:08 +08:00
学到了,感谢 LZ 。虽然以后还是会按照先前的规范写,但知道多点东西总是好。
PS :不用理会某些对人不对事的评论,现在 V2 人很杂。
ltux
2017-02-26 20:22:13 +08:00
我觉得楼主应该是这样:之前一直是按“谣言”写的,但是最近终于读了一下 HTML 5 规范,结果发现原来不按“谣言”写也是可以的,于是怒从心中起,认为自己被骗了这么多年之后终于掌握了宇宙真理,并想当然地认为一定会有很多人不知道“原来规范是这个样子的”,于是赶紧屁巅儿地跑来发个贴,并把自己原来不知道的东西放大为很多人都不知道的东西,称之为“谣言”,得到了心理满足。
konakona
2017-02-26 20:46:17 +08:00
虽然我都支持,但我还是支持一下楼主。
楼主并不是鼓励大家无视开发规范,有些基础知识要知道的还是得知道。
本身 HTML 就很松散,怎么写都可以啊。但是谣言要知道是谣言。
Tonni
2017-02-26 21:28:20 +08:00
论前端开发规范的重要性。
nomemo
2017-02-26 22:01:35 +08:00
虽然不写前端,但我知道 LZ 不错
Lucups
2017-02-27 00:01:45 +08:00
同情楼主。
楼主第一句就说了 “本文不考虑「团队规范」、「可读性」,只谈「语法」。”
可是有些人非要跟楼主讲规范。
你跟他讲道理,他跟你耍流氓。。。
不知道这些耍流氓的人平时是怎么跟人交流的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/343238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX