使用 Bash 制作网页安全颜色指南

使用 Bash 中的 for 循环创建一个方便的网页调色板。
5 位读者喜欢这篇文章。
What sets Krita apart from other open source digital painting tools

John Morgan 在 Flickr 上,CC BY 2.0

当计算机显示器颜色调色板有限时,网页设计师经常使用一组网页安全颜色来创建网站。虽然在较新设备上显示的现代网站可以显示比原始网页安全颜色调色板更多的颜色,但我有时喜欢在创建网页时参考网页安全颜色。 这样我就知道我的页面在任何地方看起来都不错。

您可以在网上找到网页安全颜色调色板,但我想拥有自己的副本以便于参考。 您也可以使用 Bash 中的 for 循环制作一个。

Bash for 循环

Bash 中的 for 循环的语法如下所示

for 变量 in 集合 ; do 语句 ; done

例如,假设您想打印从 1 到 3 的所有数字。您可以在 Bash 命令行上编写一个快速的 for 循环来为您完成此操作

$ for n in 1 2 3 ; do echo $n ; done
1
2
3

分号是标准的 Bash 语句分隔符。 它们允许您在单行上编写多个命令。 如果您要将此 for 循环包含在 Bash 脚本文件中,则可以改为用换行符替换分号,并将 for 循环编写成这样

for n in 1 2 3
  do
    echo $n
  done

我喜欢将 dofor 放在同一行,这样我更容易阅读

for n in 1 2 3 ; do
  echo $n
done

一次多个 for 循环

您可以将一个循环放在另一个循环内部。 这可以帮助您迭代多个变量,一次执行多项操作。 假设您想打印字母 A、B 和 C 与数字 1、2 和 3 的所有组合。 您可以使用 Bash 中的两个 for 循环来完成,如下所示

#!/bin/bash
for number in 1 2 3 ; do
  for letter in A B C ; do
    echo $letter$number
  done
done

如果您将这些行放在名为 for.bash 的 Bash 脚本文件中并运行它,您将看到九行,显示所有字母与每个数字配对的组合

$ bash for.bash
A1
B1
C1
A2
B2
C2
A3
B3
C3

循环遍历网页安全颜色

网页安全颜色是从十六进制颜色 #000(黑色,其中红色、绿色和蓝色值均为零)到 #fff(白色,其中红色、绿色和蓝色颜色均为最大强度)的所有颜色,以 0、3、6、9、c 和 f 的十六进制值步进。

您可以使用 Bash 中的三个 for 循环生成网页安全颜色的所有组合列表,其中循环迭代红色、绿色和蓝色值。

#!/bin/bash
for r in 0 3 6 9 c f ; do
  for g in 0 3 6 9 c f ; do
    for b in 0 3 6 9 c f ; do
      echo "#$r$g$b"
    done
  done
done

如果您将其保存在名为 websafe.bash 的新 Bash 脚本中并运行它,您将看到所有网页安全颜色的迭代,以十六进制值表示

$ bash websafe.bash | head
#000
#003
#006
#009
#00c
#00f
#030
#033
#036
#039

要制作一个 HTML 页面,您可以将其用作网页安全颜色的参考,您需要将每个条目设为一个单独的 HTML 元素。 将每种颜色放在 <div> 元素中,并将背景设置为网页安全颜色。 为了使十六进制值更易于阅读,请将其放在单独的 <code> 元素中。 更新 Bash 脚本,使其看起来像这样

#!/bin/bash
for r in 0 3 6 9 c f ; do
  for g in 0 3 6 9 c f ; do
    for b in 0 3 6 9 c f ; do
      echo "<div style='background-color:#$r$g$b'><code>#$r$g$b</code></div>"
    done
  done
done

当您运行新的 Bash 脚本并将结果保存到 HTML 文件时,您可以在 Web 浏览器中查看输出,以查看所有网页安全颜色

$ bash websafe.bash > websafe.html
Colour gradient.

(Jim Hall,CC BY-SA 4.0)

该网页看起来不是很美观。 黑色文本在深色背景上无法阅读。 我喜欢应用一些 HTML 样式,以确保十六进制值在颜色矩形内以白色文本显示在黑色背景上。 为了使页面看起来真正美观,我还使用 HTML 网格样式来排列框,每行六个框,并且每个框之间有一些空间。

要添加这种额外的样式,您需要在 for 循环之前和之后包含其他 HTML 元素。 顶部的 HTML 代码定义了样式,底部的 HTML 代码关闭了所有打开的 HTML 标签

#!/bin/bash

cat<<EOF
<!DOCTYPE html>
  <html lang="en">
  <head>
    <title>Web-safe colors</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

<style>
div {
  padding-bottom: 1em;
}

code {
  background-color: black;
  color: white;
}

@media only screen and (min-width:600px) {

body {
  display: grid;
  grid-template-columns: repeat(6,1fr);
  column-gap: 1em;
  row-gap: 1em;
}

div {
  padding-bottom: 3em;
}

}
  </style>
</head>
</body>
EOF

for r in 0 3 6 9 c f ; do
for g in 0 3 6 9 c f ; do
for b in 0 3 6 9 c f ; do

echo "<div
style='background-color:#$r$g$b'><code>#$r$g$b</code></div>"

done
done
done

cat<<EOF

</body>
</html>
EOF

这个完成的 Bash 脚本生成一个 HTML 格式的网页安全颜色指南。 每当您需要参考网页安全颜色时,运行该脚本并将结果保存到 HTML 页面。 现在您可以在浏览器中看到网页安全颜色的表示形式,作为您下一个 Web 项目的易于参考的指南

$ bash websafe.bash > websafe.html
Web colors.

(Jim Hall,CC BY-SA 4.0)

photo of Jim Hall
Jim Hall 是一位开源软件倡导者和开发人员,以 GNOME 中的可用性测试以及作为 FreeDOS 的创始人和项目协调员而闻名。

1 条评论

哇,好的,Bash 很强大。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.