[W3Conf] Nicolas Gallagher:"Web 开发的净化"

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费积分!

Nicolas Gallagher (@necolas) 是 Twitter 的前端开发人员,曾参与过 HTML5 BoilerplateNormalize.css 等大型项目。 Nicolas 谈到了质疑前端 Web 开发中的一些旧有假设。

这些是我从他在旧金山 W3Conf 上的演讲中记录的笔记,作为 这个直播博客系列的一部分

"最佳实践"并非"绝对真理"。

Nicolas 在成为 Web 开发人员之前,曾在人类学领域学习了更长的时间。

**赫拉克利特(公元前 535 年)**:哲学家。 对人类的蔑视。 苦难是常态。 那个时代的悲伤基努。 死于用牛粪涂抹自己并躺在阳光下。 主要观点:一切都是幻觉。 "你不能两次踏入同一条河流,因为有新鲜的水流向你。"

**德谟克利特(公元前 460 年)**:同样对人类怀有蔑视。 "笑口常开"的哲学家。 世界上第一个巨魔。 质量和能量守恒。 原子。

这些理念被搁置了数千年,直到科学再次发现它们。 柏拉图和亚里士多德拒绝了这些理念,但你不能责怪他们。 这些理念在时机成熟时又回来了。

Web 开发也是一个不断变化的语境世界。 Nicolas 继续怀疑那些即使在六个月前也成立的假设。

为 CSS1 添加 HTML 类属性是为了"增强对元素控制的粒度"。

CSS Zen Garden(2003) 只有一个 HTML 页面,但有许多不同的设计,其中只有 CSS 发生了变化。

来自真实人物和真实规范的真实陈述

"不要使用无意义的类名"。

"你的 HTML 就像钻石一样永恒。"

"鼓励作者使用描述内容本质的类属性值,而不是描述内容预期呈现方式的值。"

这些让 Nicolas 感到疯狂。 他曾经用零个类设计过自己的博客。 创建(所谓的"完美语义")但进行更改变得不切实际。 难以阅读。 难以理解。 难以进行样式更改。

这是更真实的

不过,确实存在“难看”的 HTML 类名的概念。 这种类名目前很流行:hyphenated-lowercase-4-life。 例如

.button { }
.button-group {}
.button-primary {}
.button-group-item {}

这种东西并不能传达太多信息。 与这些"难看"的类名形成对比

.Button {}
.ButtonGroup {}
.Button--primary {}
.ButtonGroup-item {}

这种命名约定传达的信息要多得多。 双破折号是修饰符。 单破折号是组件子项。 这些并不难看。 它们可能目前并不流行,但也许将来会流行起来。 这种特定模式来自俄罗斯搜索引擎 Yandex。

注意:关于类名使用哪些字符可能存在一些历史原因

另一个旧的最佳实践是:"不要使用额外的元素"。 Nicolas 深入研究了伪元素的世界,以避免使用额外的元素。 回想起来,这使得理解发生了什么变得更加困难。 并不是说"垃圾"标记很不错,但像 Web Components 这样的东西更有意义。

CSS 是错误的工具,它无法对内容/设计施加结构。 HTML 用于此目的。 Web Components 使我们能够使用正确的工具,而无需担心"垃圾"标记。