列和最大公约数

Avatar of Chris Coyier
Chris Coyier

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

我最近正在为一些列创建 CSS。 列需要适应一些预先确定的宽度。 出于某种原因(也许是因为世界上每个网格框架都是这样),我的思绪立即转向尝试找到一个通用的构建块大小。 所有列的大小要么是单个构建块的大小,要么是构建块的倍数,并添加了间距宽度。

你知道我的意思

所以我有一系列需要适应的大小,我需要弄清楚这个基础构建块是什么。 我心想:“这难道不像是最低公分母之类的东西吗?”好吧,不是,但它很相似。 我正在寻找的是最大公约数。 也就是说,可以均匀地构建这些列的最大构建块。

用数学方式表示最大公约数表达式的形式为:gcd(n1, n2, n3 等)

首先我尝试了 OS X 的聚焦搜索,因为它有时可以解决数学问题。 但这个不行。 使用 Google 搜索框也不行。 幸运的是,Wolfram|Alpha 可以!

这是一个示例,展示了一系列所需的列宽以及如何获得有用的公约数。

不幸的是,当我运行我的特定数字集时,最大公约数是 5。5 个像素。 这小于计划的间距。 我不想考虑编写一个 192 列网格框架的 CSS。

两种选择

在这种特定情况下,我看到有两个选择

1) 调整这些宽度

告诉负责提供这些目标宽度的人员出现的问题。 没有一个合理的通用构建块。 它们为什么是这样的? 它们能否调整以适应更合理的通用构建块? 这可能带来一些好处,例如清晰的视觉一致性。

2) 算了吧

还有另一个问题:我们为什么需要基础构建块? 我认为它对于超灵活的布局很有用(例如,纽约时报 需要具备的功能)。 我实际上从未在内容如此复杂和丰富的网站上工作过,因此我几乎没有第一手经验。

在我的情况下,网格审核已经完成。 我们已经定义了所需的网格。与其创建整个复杂的网格框架以适应这几个所需网格的需求,不如编写非常具体的 CSS 来定义这些网格。

哪种方式?

那么哪一个是正确的选择呢? 获得合理的构建块大小意味着能够创建一个网格框架,该框架对于超出几个指定需求的网格非常灵活且有用。 这也意味着更多的 CSS。

仅定义您需要的网格可以节省您可能永远不会使用的许多 CSS。 但它也远没有那么灵活。

我想这是一种“视情况而定”的情况。

我一定会将我的特定情况的结果记录在博客中。