那些前端程序员深信不疑的谣言( 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 文档

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

12288 次点击
所在节点    HTML
109 条回复
FrankFang128
2017-02-26 12:36:09 +08:00
@zkd8907 本文不考虑「团队规范」、「可读性」,只谈「语法」。
FrankFang128
2017-02-26 12:37:01 +08:00
@MinonHeart 你不写 / 不就好了……
zkd8907
2017-02-26 12:37:31 +08:00
这些容错 /多套规范写法相互混杂的做法,对于浏览器 parser 是非常有意义的,除此之外没有任何讨论的意义。所以我为什么要回复这帖子。。。好蛋疼。
ksco
2017-02-26 12:42:00 +08:00
@FrankFang128 我倒是觉得语法之类的是次要的,糟粕的东西不了解也罢。
peesefoo
2017-02-26 12:56:50 +08:00
全部深信并坚持
loading
2017-02-26 12:58:23 +08:00
建议面向 IE6 诡异模式编程,会自动纠正, 233
murmur
2017-02-26 12:58:38 +08:00
顺便,那些前端程序员深信不疑的谣言 第 0 点,不是必须用 osx+vim 么
gamexg
2017-02-26 13:04:01 +08:00
非前段,记得 xhtml 就有那些要求,必须引号,必须有 /> 闭合等等。
鬼知道下个版本 html 又要折腾什么。
sox
2017-02-26 13:06:05 +08:00
蛤蛤,想起了以前某人讨论 Vue 的时候说,「 先说好,我不和你讨论 vue ,我是外行。」然后吐槽了一堆 Vue

你这个 「本文不考虑「团队规范」、「可读性」,只谈「语法」」也差不多了
yimity
2017-02-26 13:06:24 +08:00
1. 请先理解“谣言”的意思。
2. 最恶心标题党。
3. 呵呵
FrankFang128
2017-02-26 13:06:24 +08:00
@zkd8907 写在规范里了,那么规范里的才是对的。
团队规范优先级更高没错,但是有些人不看规格文档就会写出一些自大的代码。
比如自己实现 html parser 的时候。
FrankFang128
2017-02-26 13:07:35 +08:00
@ksco 你很诚实。不过我不认为那些是糟粕。
FrankFang128
2017-02-26 13:08:21 +08:00
@sox 我是的哪一点错了? 指出来呗
FrankFang128
2017-02-26 13:08:45 +08:00
@yimity 求 block
FrankFang128
2017-02-26 13:09:14 +08:00
@FrankFang128 说的
Kei
2017-02-26 13:24:21 +08:00
为什么一个科普文会引起那么多人的反感……大概他们觉得不符合规范就是错误吧……

这些我都有了解,但还是会加引号,纯粹心理安全,而且多个属性情况下就要加引号,一些有一些没有会导致强迫症发作。另外虽然我的 sublime 能高亮,但是分享给别人不高亮的话会引起阅读障碍。

/> 这点真的看心情……
starvedcat
2017-02-26 13:26:52 +08:00
楼主的文章对本菜鸟很有帮助。附言写的更好,尤其第四条,喷了。。。。怎么这么搞笑
freestyleyoo
2017-02-26 13:27:11 +08:00
@FrankFang128 你是个恶心的标题党
FrankFang128
2017-02-26 13:34:33 +08:00
@freestyleyoo @Livid 这个人骂人
FrankFang128
2017-02-26 13:36:06 +08:00
/t/343251 各位如果有被打脸的,请对号入座。

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

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

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

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

© 2021 V2EX