如何使用 Text 和 ForeignObject 元素在 SVG 中標記字體
已發表: 2022-12-04在處理可縮放矢量圖形 (SVG) 中的文本時,有幾個不同的選項可供您使用。 一種方法是使用 SVG 的內置文本功能將文本直接繪製到 SVG 形狀中。 這種方法適用於簡單的文本標籤,但如果您需要做任何更複雜的事情,例如環繞文本或包含超鏈接,那麼您將需要使用不同的方法。 一種流行的方法是將該元素與 foreignObject> 元素結合使用。 foreignObject> 元素允許您在 SVG 中包含 HTML 元素,這讓您在標籤中包含的內容方面具有更大的靈活性。 這種方法還具有能夠使用標準 CSS 設置標籤樣式的優點,這可以節省大量時間。 在這篇文章中,我們將看看如何使用和 foreignObject> 元素來標記 SVG 中的字體。 我們還將了解如何使用 CSS 設置標籤樣式,以及如何通過添加 ARIA 標籤使標籤更易於訪問。
如何在 Svg 中嵌入字體?
要在SVG 文件中嵌入字體,首先需要在 svg 文件中定義 @font-face 規則。 然後,您可以使用 font-family 屬性在 SVG 中使用該字體。
我們的公司品牌包含一種名為 metropolis 的字體,但外部用戶(他們無權訪問這些文件)訪問的內容需要 .svg 文件。 有一種方法可以保存公司字體文件。 Times New Roman 是瀏覽器中的默認字體。 無法將字體放入 Inkscape 中。 無論如何,您都需要第二台機器來安裝字體。 如果您使用的是瀏覽器,或者如果您添加了 <img> 標籤,您可以檢查 svg 文件的性能。 還有其他幾種方法可以執行此程序。
您可以從我在這裡發布的兩個原始文件中復制格式。 顧名思義,它本質上是一樣的:您使用的是安裝了字體的系統。 必須指定字體系列以及svg 元素的線條樣式。
您可以將文本放入 Svg 中嗎?
使用 text> 元素時,您可以創建一個以文本為源的圖形元素。 可以應用您用於文本的任何類型的漸變、圖案、剪切路徑、蒙版或濾鏡,就像任何其他類型的SVG 圖形元素一樣。 在 SVG 中包含文本的元素不會出現在 text> 元素中。
兩全其美的方法是使用SVG 文本。 它具有與其他圖形元素相同的外觀和感覺,允許您添加筆劃並使用您喜歡的筆劃和填充填充空間。 可以選擇它、複製它並將它粘貼到其他地方。 屏幕閱讀器可以閱讀文本,搜索引擎可以找到它。 (0,0) 點通常位於框的左下角,但更常見的是沿著左邊緣找到它。 為了每個em生成特定數量的坐標,EM框應該被分成若干個em。 這個數字是字體的典型特徵,列在字符表中。
文本以與其他SVG 元素相同的方式呈現。 填充、描邊,甚至重複使用來自多個元素的文本。 在這個例子中,我在標籤中創建了一個 *.text* 元素。 為文本定義視口位置的 X 和 Y 屬性已添加到其中。 該元素的定位是獨一無二的,因為它允許您移動所有文本。 我們將討論您可以做的一些事情來改進它的顯示方式。 感謝您花時間閱讀有關字形和字體的一些信息。 儘管如此,有一個堅實的基礎有助於我們以後的理解。
這些元素讓我們可以在使用 SVG rect> 和 text> 元素創建的矩形內寫入文本。 這是創建標籤和其他基於文本的圖形的絕佳工具。 要創建基於文本的 SVG 圖形,我們必須首先創建一個矩形和一個文本元素。 您可以使用繪製矩形和繪製文本主題了解有關繪製矩形和繪製文本的更多信息。 一旦我們設置好了這些,我們就可以開始寫我們的文本了。
如何將文本放入 Svg 路徑中?
有幾種方法可以做到這一點,但最常見的是使用文本元素。 您可以使用 x 和 y 屬性定位文本元素。 然後,要將文本放在曲線上,您可以使用 textPath 元素。 textPath 元素需要對路徑元素的引用。 然後,您可以使用 startOffset 屬性來控製文本在路徑上的開始位置。
SVG 中的文本可以隨意放置。 現在可以以多種方式顯示文本。 創建帶有路徑的元素遵循定義已定義元素的路徑,並且在 defs 標籤內很簡單。 在下面的第一個示例中,我使用文本路徑 ID 來創建線性路徑。 您可以設置 startOffset 屬性以在初始文本位置偏移路徑的開始。 您可以將長度定義為百分比,也可以定義為數字。 該數字表示當前坐標係與後者測量的距離之間的距離。
如果你不使用 startOffset,你甚至可以用同樣的方式來做。 值 x 用於指示文本與路徑平行和垂直的位置。 創建路徑是最困難的步驟,但添加文本是最簡單的。 如果您習慣於使用SVG 路徑,那麼最好的辦法就是玩得開心。 下週,我將復習剩餘的屬性,最後向您展示一條彎曲的路徑。
Svg 文本字體
SVG 文本字體是一種簡單、乾淨、時尚的字體,非常適合任何網站或文檔。 SVG 文本字體也易於閱讀,非常適合任何需要快速閱讀的文檔。
它於 1999 年首次推出,作為設計人員使用他們想要的任何字體創建圖形並使它們在瀏覽器中正確顯示的一種方式。 18 年後,SVG 對字體的支持如何?讓字體在其中正常工作的最佳實踐是什麼? 使用網絡安全字體可確保 SVG 中使用的字體在大多數主要係統中顯示。 網絡安全字體可供任何人下載和使用,並為所有平台和系統共享。 由於越來越多的服務提供商(如 Google 字體、Font Squirrel 等),您現在可以在 SVG 中使用網絡字體。
Svg 中字體的好處
這些只是可縮放矢量圖形 (SVG) 字體。 因此,您無需下載單獨的字體文件然後將其嵌入到可縮放矢量圖形 (SVG) 文件中,而是可以自己創建可縮放矢量圖形 (SVG) 字體。 因為 SVG 字體可以在任何支持它們的平台上使用,包括台式電腦、手機,甚至像 Inkscape 這樣的矢量繪圖應用程序,它們幾乎可以在任何平台上使用。 儘管 SVG 中的字體仍處於早期開發階段,但有一些獨特的功能使它們有別於其他字體。 使用 SVG 字體時,您可以從實際嵌入到字符中的各種顏色、漸變或圖案中進行選擇。 因此,SVG 字體可用於創建傳統字體文件無法實現的複雜、複雜的設計。 如果你想創建豐富且有質感的 SVG 設計,你應該考慮使用 sva 中的字體。
Svg 文本屬性
SVG 文本屬性使您可以控制SVG 文檔中文本的外觀。 您可以在元素上設置以下屬性:alignment-baseline, baseline-shift, clip, clip-path, color, cursor, direction, display, dominant-baseline, fill, fill-opacity, font, font-family, font-size , 字體大小調整, 字體拉伸, 字體樣式, 字體變體, 字體粗細, 字母間距, 不透明度, 溢出, 指針事件, 形狀渲染, 描邊, 描邊-dasharray, 描邊-dashoffset, 描邊-linecap、stroke-linejoin、stroke-miterlimit、stroke-opacity、stroke-width、text-align、text-anchor、text-decoration、text-rendering、unicode-bidi、visibility、word-spacing、x、y。
什麼是 Svg 屬性?
元素屬性可用於指定應如何根據其上下文處理或呈現 SVG 元素。 以下是 SVG 中所有可用屬性的列表,以及參考文檔的鏈接,可幫助您了解哪些屬性支持哪些元素,以及它們如何工作。
Svg 字體系列不工作
如果您在使用 svg 字體系列時遇到問題,可以檢查一些事項。 確保您使用的是正確的字體系列名稱,並且您的系統上安裝了該字體。 如果您仍然遇到問題,請嘗試使用不同的字體系列名稱。
Svg 圖像:如何在網頁和打印佈局中使用它們
相對於.JPG圖片,可以在網頁中使用,。 SVG 圖像可用於打印佈局。 如果你想在網頁中使用 SVG 圖像,你需要包含一個 sva 文件。 要在打印佈局中使用 svg 圖像,您需要一種支持它們的字體。 您可以在任何支持 提供的字體的網絡瀏覽器中使用 SVG 圖像。 儘管如果您使用的瀏覽器不支持 SVG 圖像,您可能無法正確看到它們,但它們應該仍然可見。 如果是這種情況,您可以嘗試使用網絡安全字體或 Google 網絡字體。 因為大多數瀏覽器都支持這些字體,所以您的 sva 圖像通常應該可以正確呈現。
Svg 文本顏色 Css
可以使用 CSS 中的“填充”屬性設置SVG 文本元素的顏色。 默認情況下,顏色是從父元素繼承的。
在 CodePen 中,您可以在 HTML 編輯器的上下文中編寫任何需要的內容,包括基本 HTML5 模板中的標頭和標籤。 CSS 可以從 Internet 上的任何樣式表應用到您的 Pen。 供應商前綴通常應用於必須可操作的屬性和值。 您的 Pen 可以通過可以從 Internet 上的任何位置創建的腳本來控制。 當您將 URL 添加到它時,我們將按照您首先擁有它們的順序添加它,在 Pen 中的 JavaScript 之前。 在申請之前,我們將嘗試處理包含預處理器文件擴展名的腳本。
如何使用 Css 更改 Svg 元素的顏色
如果將 fill=”currentColor” 添加到svg 標籤,將設置 svg 標籤內內容的顏色。 如果您有此關鍵字(而不是固定顏色),稍後可以使用 CSS 更改顏色。 全局顏色屬性可用於為 SVG 文件中的所有元素指定默認顏色。
如何在 Svg 路徑中添加文本
要創建遵循路徑的 SVG 文本,您可以使用 *textPath> 元素和您在 defs 標籤中定義的路徑。 可以使用 *textPath 標籤的“textPath”部分中的 xlink:href 屬性來引用該路徑。 您會注意到在 SVG 2.0 中,沒有 xlink: 而是將路徑稱為 href。
Svg 文字換行
SVG 文本環繞是可縮放矢量圖形 (SVG) 格式的一項功能,它允許文本圍繞圖形環繞。 這對於創建基於文本的徽標或向圖像添加標題非常有用。 所有主要瀏覽器都支持文本換行功能。
簡而言之,無論您在 HTML 編輯器中編寫什麼,都會存儲在基本 HTML5 模板的 HTML5 正文中。 CSS 可以從 Internet 上的任何樣式表應用到您的 Pen。 如果你想要最好的跨瀏覽器支持,你應該在屬性和值上使用供應商前綴。 您可以創建一個腳本,您可以使用 Pen 在 Internet 上的任何地方使用該腳本。 如果您在此處輸入一個 URL,它將按照您擁有它的其他文件在 Pen 中的 JavaScript 中的順序添加。 我們將嘗試處理您鏈接的腳本的文件擴展名,以便在申請前對其進行處理。
Svg 文本沒有寬度和高度
為什麼 dosvg 有寬度? 創建sva 文本時,無法指定其寬度或高度。
Svg 文字大小
這個問題沒有明確的答案,因為它在很大程度上取決於特定 SVG 文件的外觀和感覺。 但是,一般情況下,通常建議使用相對字體大小(例如 em 單位)以確保在調整 SVG 文件大小時文本適當縮放。