是否有理由将大写字母用于十六进制 CSS 颜色值?

Is there a reason to use uppercase letters for hexadecimal CSS color values?

我看到 CSS 属性值中的颜色通常以大写形式书写:

.foo .bar {
  background-color: #A41B35;
  color: #FFF;
}

但您也可以使用:

/* Same same */
.foo .bar {
  background-color: #a41b35;
  color: #fff;
}

even the very controversial:

/* Check the link to see why it can be interesting */
.foo .bar {
  background-color: #A41b35;
  color: #FfF;
}

无论如何 (ho ho ho),尽可能使用 white 之类的命名颜色来代替 #fff 让我们的生活更轻松,但这是另一个问题。

看起来使用小写值的效果相同,并且 CSS 颜色值 are not case-sensitive。许多图形设计软件也使用大写形式。而且在源代码中发现大写符号很常见,看起来有点像传统。

我了解一致性问题,它应该在您的软件中处处相同,但由于标准没有给出很好的指示,人们会他们想做什么他们被告知要做什么

这是否有合理的原因,例如历史、兼容性、旧的 IE6 黑客攻击、性能或实际原因?

CSS 值不区分大小写。说使用大写不是一个好习惯。遵循常态。使用小写。

除了个人喜好,我不知道有什么不同。就个人而言,我更喜欢小写字母,因为它阅读起来更快,尽管在非常短的字符串(例如 CSS 颜色值)中,好处可能可以忽略不计。 真的,我想只是因为我觉得小写更好看。

十六进制,但是,传统上用大写字母书写的,所以也许我 - 严格来说 - 在 'wrong'.

这真的不重要,重要的是有一个约定并坚持下去。我喜欢使用严格的 sass-lint 规则来强制执行小写十六进制值,并在可能的情况下使用短值(例如 #fff 而不是 #ffffff)。

以下是我选择小写字母的原因;

  • 打字更轻松快捷(我已经更改了大写键的键绑定,使用 shift 很尴尬,尤其是混合数字和字母)

  • 如果您知道会发生什么,搜索起来会更容易。 (假设您正在将旧代码重写为 Sass,您已经修复了所有出现的 #aa99cc,但是 AA99ccAa99CCA9Ca9c?林婷会为你挑出这些问题)

"it is very common to find uppercase notations"

这个答案并不是说你 应该 在 CSS 中使用大写字母,而是美学猜想和历史先例为什么你会经常看到大写字母。

(1) 所以你已经知道同时存在小写字母(x 高或大写字母的大约一半高度)和大写字母(大写字母或非西尔字母,其中字母几乎占据了 em 框的整个高度),但是还存在全高数字和低高数字(也称为旧式数字、小写、悬挂数字)。你不会在现实世界中找到这些数字,除了老爷钟,但许多字体通过 'onum' 功能或有时甚至 'scmp'(小型大写字母)功能支持它们。

知道这些高度变体都存在,显示全高数字和半高字母的混合会导致字符高度不一致,相反,混合半高数字和全高字母会导致字符高度不一致(当然,你不能在 OpenType 功能之外使用半高数字,因为它们没有唯一的 Unicode 代码点)。因此,像 PhotoShop 这样的专业设计应用程序可能更注重呈现的美感与打字效率(按住 Shift 键),这在 CSS 无处不在之前并不是最重要的。

Old Style Figures

List of Typographic Features

(2) 早期的编程语言(COBOL、FORTRAN、BASIC...)和输入终端设备都是大写的——没有输入小写的键,即使有,这些字符也不存在于有限的字符集。

Did keyboards have caps lock on by default

没有标准,但一致性很重要。

为了保持一致性,将数字(十进制或十六进制)与单词分开是有意义的。例如,在 "1px solid #D0D0D0" 中,所有字母和关键字都是小写(短),而 numbers/digits 是高;请注意 "0""D" 都是数字。

这也与项目的其余部分一致,它们可能具有不同的十六进制语法,如 0xCAD\xCADCADh。写 0xcad\xcadcadh 将不可读。

今天没有人质疑十六进制数字不区分大小写,但是与其他数字系统相比,不区分大小写是相当例外的。事实上,多功能数字系统转换器很少出现这种情况,它们假设数字仅由大写字母组成,或者仅由小写字符组成。

从历史上看,十六进制数字仅由大写字母表示,原因很简单,因为早期的操作系统不对小写字符进行编码。做复古计算的人肯定会选择大写

A quick google search 让你知道有很多人喜欢小写字母。就个人而言,我发现小写字母更容易识别,也更容易编写,因为大多数(如果不是全部?)CSS 代码都是小写字母并且对大小写类型不敏感。哦,在代码上看起来更好。 :3

大写为objectively easier to read.

例外情况是当小写字母的大小是可读大小的两倍时,由于“字形”——“d”、“h”和“p”上的尖位构成“xxxd”和“xhxpx”可区分。 REGARDLESS OF SIZE,像“1lmnmmn”这样的代码没有字形。

小写也有类似字符,如“1l”和“mnw”等,具体取决于字体。大写字母 O 和 0 也会遇到这种情况,这就是为什么在控制台字体上使用横线零。

Base32 通过使用所有 26 个大写字母和仅 6/10 的数字:2、3、4、5、6 和 7,对第二个问题采取了完全不同的方法。

早期的计算机工程师出于充分的理由做出了正确的选择 - 易读性提高了准确性。