一次性元素

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

有一种观点认为,您不应该首先设计网站的首页。对于大多数网站来说,首页是一个异常值。它与任何其他页面都不一样,并且不应作为您在网站其余部分使用的模式的基础,也不应帮助提供其他页面的信息。

您可以称之为 **一次性元素**。1

一次性元素是可以的!一个没有一次性元素的世界非常无聊。但是,一个充斥着一次性元素的网站会导致一些常见的问题:不一致和不可重用的 CSS,这会导致代码膨胀,并且维护人员实际上不知道 哪些被使用,哪些没有被使用

我们该怎么办呢?

Brad Frost 最近在他的文章 将一次性组件放在哪里? 中思考了这个问题。

很有可能,各个应用程序包含适合特定应用程序的非常实际需求的组件(例如计算器、节日季视差英雄单元、特定上下文的交互式地图等),但可能无法立即(或永远)抽象成一个包含在设计系统中的通用、可重用组件。

以及 Ethan Marcotte

以下是一个示例:假设您设计了一个外观炫目的英雄图像。(顺便说一句,做得很好。它看起来非常炫目。)让我们也假设它的范围相当有限:也许它只在少数几个页面上使用,或者它与您网站的某个特定部分相关联。换句话说,它足够通用到可以成为一种模式,但它并不是一种广泛使用的模式。

正如您可能猜到的那样,这是一个模式容易陷入危险的地方。如果某个模式感觉有点特立独行,那么我们总是应该问自己:您的团队应该保留这个模式,还是将其移除?

问题是,这个问题没有一个简单易行的答案。每个模式都不同,并且每个模式的价值都是可变的。也许我们会完全放弃该模式;也许我们会将其与另一个类似的模式合并。

Brad 将一次性元素的概念与 Harry Robert 的 shame.css 概念 联系起来。

shame.css 的理念是,您有一个完全新的样式表,专门用于您的 hacky 代码。您必须编写这些代码才能及时发布,但这些代码让您感到羞愧。

但也许这样的 CSS 文件不需要专门用于“hacks”或令人羞愧的快速修复(嘿,它比内联样式好),还可以 用于一次性元素

从负责样式的开发人员的角度来看,考虑不同的样式方法在这里如何发挥作用非常有趣。对于那些走上 原子化 CSS 道路的人来说,从某种意义上说,一切都是一次性元素。您仍然可能拥有一个在视觉上或行为上是一次性元素的模式,因为您构建它的方式,但不是因为它使用了一组不同的 CSS。Callum Jefferies 在 他的体验 中提到了原子化 CSS

我不再需要考虑如何组织我的 CSS。我不必考虑如何命名我的“组件”,在哪里划分一个组件和另一个组件之间的界限,什么应该放在哪里,以及最重要的是,当出现新需求时如何重构代码。

同样,对于 36 种 CSS-in-JS 也一样。当您的样式附加到您的组件时,所有组件都是一次性元素。停止使用该组件,停止使用这些样式。


1 显然,一次性元素是 一个相当新的表达方式

正如 William Safire 在 2007 年的“On Language”专栏中所观察到的那样,“一次性元素”表示“独特的东西”是一个英国表达方式,近年来已逐渐渗入美国人的口语和写作中。并且,与其他影响这些海岸的英国习语(例如“gone missing”)一样,一次性元素的习惯用法起源对于美国人的耳朵来说大多是失传的。