格子呢,標誌性的圖案布與蘇格蘭的代名詞,尤其是其蘇格蘭語,在Tartanify.com上佔據了中心地位。該站點擁有超過5,000種格子呢模式(以SVG和PNG格式)的圖書館,並精心策劃,以排除具有限制性使用權的人。
該項目是由Sylvain Guizard在蘇格蘭暑假期間構想的,最初使用Adobe Illustrator或Sketch(例如Adobe Illustrator)的設計軟件設想了手動創建模式庫。但是,大量的圖案(成千上萬!)迅速使這種方法站不住腳。突破性的是意識到格子呢具有定義的結構,並由編碼線程計數和顏色代碼的簡單字符串表示。
格子呢結構和SVG表示
格子呢的特徵模式是由以直角交織的顏色線引起的。垂直和水平帶具有相同的顏色和寬度序列。這些頻帶的交叉點會產生視覺混合的顏色。斜紋編織技術增加了獨特的對角線。本文使用SVG矩形作為線程重新創建此效果:
讓我們檢查這個SVG結構:
<svg height="280" viewbox="0 0 280 280" width="280" x="0" xmlns="http://www.w3.org/2000/svg" y="0"><defs><mask height="1" width="1" x="0" y="0"><rect fill="url(#diagonalStripes)" height="100%" width="100%" x="0" y="0"></rect></mask></defs><g><rect fill="#FF8A00" height="40" width="100%" x="0" y="0"></rect><rect fill="#E52E71" height="10" width="100%" x="0" y="40"></rect><rect fill="#FFFFFF" height="10" width="100%" x="0" y="50"></rect><rect fill="#E52E71" height="70" width="100%" x="0" y="60"></rect><rect fill="#100E17" height="20" width="100%" x="0" y="130"></rect><rect fill="#E52E71" height="70" width="100%" x="0" y="150"></rect><rect fill="#FFFFFF" height="10" width="100%" x="0" y="220"></rect><rect fill="#E52E71" height="10" width="100%" x="0" y="230"></rect><rect fill="#FF8A00" height="40" width="100%" x="0" y="240"></rect></g><g mask="url(#grating)"><rect fill="#FF8A00" height="100%" width="40" x="0" y="0"></rect><rect fill="#E52E71" height="100%" width="10" x="40" y="0"></rect><rect fill="#FFFFFF" height="100%" width="10" x="50" y="0"></rect><rect fill="#E52E71" height="100%" width="70" x="60" y="0"></rect><rect fill="#100E17" height="100%" width="20" x="130" y="0"></rect><rect fill="#E52E71" height="100%" width="70" x="150" y="0"></rect><rect fill="#FFFFFF" height="100%" width="10" x="220" y="0"></rect><rect fill="#E52E71" height="100%" width="10" x="230" y="0"></rect><rect fill="#FF8A00" height="100%" width="40" x="240" y="0"></rect></g></svg>
水平和垂直條帶組創建了相同的正方形,但是垂直的正方形被掩蓋,僅揭示了水平和垂直線相交的白色區域。反映編織的圖案面具是通過定義圖案瓷磚來實現的:
patternUnits
屬性從objectBoundingBox
更改為userSpaceOnUse
,指定像素的寬度和高度。
<svg height="0" width="0"><defs><pattern height="8" patternunits="userSpaceOnUse" width="8" x="0" y="0"><polygon fill="white" points="0,4 0,8 8,0 4,0"></polygon><polygon fill="white" points="4,8 8,8 8,4"></polygon></pattern></defs></svg>
與React自動化格子呢
手動SVG方法是使用React自動化的。 SvgDefs
組件生成<defs></defs>
標記:
const svgdefs =()=> { 返回 ( <defs><pattern height="8" patternunits="userSpaceOnUse" width="8" x="0" y="0"><polygon fill="#ffffff" points="0,4 0,8 8,0 4,0"></polygon><polygon fill="#ffffff" points="4,8 8,8 8,4"></polygon></pattern><mask height="1" width="1" x="0" y="0"><rect fill="url(#diagonalStripes)" height="100%" width="100%" x="0" y="0"></rect></mask></defs> ) }
格子呢表示為條紋陣列。每個條紋都是帶有fill
(十六進制顏色)和size
屬性的對象:
const tartan = [ {填充:“#ff8a00”,大小:40}, // ...更多條紋 ];
格子呢數據通常以“調色板”和“ ThreadCount”字符串出現:
<code>// Palette O#FF8A00 P#E52E71 W#FFFFFF K#100E17 // Threadcount O/40 P10 W10 P70 K/10.</code>
(這些字符串向條紋陣列的轉換以單獨的要旨詳細介紹。)
SvgTile
組件從tartan
陣列生成SVG結構:
const svgtile =({{tartan})=> { // ...(計算條紋位置和總尺寸的代碼)... 返回 ( <svg height="{size}" viewbox="{`0" width="{size}" x="0" xmlns="http://www.w3.org/2000/svg" y="0"> <svgdefs></svgdefs> {/ * ...(代碼生成水平和垂直條紋的矩元素)... */} </svg> ) }
使用SVG塔塔塔人作為背景圖像
在Tartanify.com上,每個格子呢都是全屏背景圖像。這需要將SVG編碼為數據URI:
.bg-element { 背景圖像:URL('數據:Image/svg XML; charset = utf-8,<svg> ...</svg> '); }
SvgBg
組件以編碼的SVG作為其背景創建一個全屏Div:
const svgbg =({tartan})=> { const tartanstr = reactdomserver.rendertostaticmarkup(<svgtile tartan="{tartan}"></svgtile> ); const tartandata = encodeuricomponent(tartanstr); 返回 ( <div style="{{" backgroundimage: xml width: height:></div> ); };
可下載的SVG和PNG tartans
SvgDownloadLink
組件允許SVG下載:
const svgdownloadlink =({{svgdata,filename =“ file”})=> { 返回 ( <a download="{`${fileName}.svg`}" href="%7B%60data:image/svg" xml>下載為SVG</a> ); };
PngDownloadLink
組件使用畫布生成高分辨率PNG:
const pngdownloadlink =({{svgdata,width,height,filename =“ file”})=> { // ...(代碼創建畫布,繪製SVG並獲取數據URL)... 返回 ( <a download="{`${fileName}.png`}" ref="{aEl}">下載為PNG</a> ); };
Gatsby用於靜態站點的生成
Tartanify.com利用基於React的靜態站點生成器Gatsby。 gatsby-config.js
文件包含用於處理CSV數據的插件:
// gatsby-config.js Module.exports = { / * ... */ 插件:[ 'gatsby-transformer-csv', { 解決:“ Gatsby-Source-Filesystem”, 選項: { 路徑:`$ {__ dirname}/src/data', 名稱:“數據”, },, },, ],, };
gatsby-node.js
文件使用蓋茨比的節點API為每個格子呢和基於字母的索引頁面創建頁面,處理slug生成和分頁。格子呢模板( tartan.js
)和索引模板( tartans.js
)利用了先前創建的反應組件。分頁索引頁面之間的導航由TartansNavigation
組件管理。
此詳細的解釋涵蓋了Tartanify.com項目的核心方面。完整的代碼可在GitHub上找到。該項目通過引人入勝的Side項目展示了一種有趣而有效的學習新技術的方法。
以上是我們如何創建一個在SVG中生成格子呢模式的靜態站點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。