Linux中國

使用 Bash 製作 Web 安全顏色

使用 Bash 中的 for 循環,為網頁創建一個方便的調色板。

當計算機顯示器的調色板有限時,網頁設計師通常使用一組 Web 安全顏色 來創建網站。雖然在較新設備上顯示的現代網站可以顯示比最初的 Web 安全調色板更多的顏色,但我有時喜歡在創建網頁時參考 Web 安全顏色。這樣我就知道我的網頁在任何地方都看起來不錯。

你可以在網上找到 Web 安全調色板,但我想擁有自己的副本以方便參考。你也可以使用 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 語句分隔符。它們允許你在一行中編寫多個命令。如果你要在 Bash 腳本文件中包含這個 for 循環,你可以用換行符替換分號並像這樣寫出 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

遍歷 Web 安全顏色

Web 安全顏色是從十六進位顏色 #000(黑色,即紅色、綠色和藍色值均為零)到 #fff(白色,即紅色、綠色和藍色均為最高),每個十六進位值的步進為 0、3、6、9、c 和 f。

你可以在 Bash 中使用三個 for 循環生成 Web 安全顏色的所有組合的列表,其中循環遍歷紅色、綠色和藍色值。

#!/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 腳本中並運行它,你就會看到所有 Web 安全顏色的十六進位值的迭代:

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

要製作可用作 Web 安全顏色參考的 HTML 頁面,你需要使每個條目成為一個單獨的 HTML 元素。將每種顏色放在一個 <div> 元素中,並將背景設置為 Web 安全顏色。為了使十六進位值更易於閱讀,將其放在單獨的 <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=&apos;background-color:#$r$g$b&apos;><code>#$r$g$b</code></div>"
    done
  done
done

當你運行新的 Bash 腳本並將結果保存到 HTML 文件時,你可以在瀏覽器中查看所有 Web 安全顏色的輸出:

$ bash websafe.bash > websafe.html

Colour gradient.

這個網頁不是很好看。深色背景上的黑色文字無法閱讀。我喜歡應用一些 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=&apos;background-color:#$r$g$b&apos;><code>#$r$g$b</code></div>"

done
done
done

cat<<EOF

</body>
</html>
EOF

這個完成的 Bash 腳本以 HTML 格式生成 Web 安全顏色指南。每當你需要引用網路安全顏色時,運行腳本並將結果保存到 HTML 頁面。現在你可以在瀏覽器中看到 Web 安全顏色的演示,作為你下一個 Web 項目的簡單參考:

$ bash websafe.bash > websafe.html

Web colors.

(題圖:MJ/abf9daf2-b72f-4929-8dd8-b77fb5b9d39b)

via: https://opensource.com/article/23/4/web-safe-color-guide-bash

作者:Jim Hall 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let&apos;s Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...