SVG <text>繪製文字
SVG與cavnas類似,都可以繪製文字,並且可以對文字的表現形式進行設定。
比如可以對SVG繪製的文字進行填充或者描邊。
但是SVG繪製的文字域canvas繪製文字相比在某些場景下會更具有優勢。
首先看一個canvas繪製文字截圖如下:
canvas繪製的文字本質上是以圖片形式展現的,這樣我們就無法進行選中或者賦值黏貼等操作,也不容易被搜尋引擎識別(據說現在搜尋引擎可以識別圖片上的文字,估計當前效果也不是太好),對於搜尋引擎優化也不太好。
而SVG繪製的文字是真正意義上的文字,與普通文字沒有區別。
使用<text>元素可以實現繪製文字的效果,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> svg { border:1px solid blue; overflow:visible; margin:50px; } </style> </head> <body> <svg width="200" height="200"> <text x="0" y="0">softwhy</text> </svg> </body> </html>
上面程式碼演示了最為簡單的繪製效果,程式碼分析如下:
(1).繪製字串"softwhy"。
(2).設定<text>元素的x和y屬性值都為0,如果沒有看到文字具體渲染效果,可能會認為文字會緊貼svg矩形框內部的左上角繪製,但實際下過是在水平方位沒有疑問,在垂直方位
(3).出現上述效果的原因是,y規定的是文字基線座標。
關於基線的概念可以參閱line-height屬性的行內框和行框等內容介紹一章節。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> svg { border:1px solid blue; overflow:visible; margin:50px; } </style> </head> <body> <svg width="200" height="200"> <text x="0 10 40 60" y="20 40">softwhy</text> </svg> </body> </html>
上面程式碼中,x和y的屬性值是數列,下面對程式碼做一下分析。
(1).x與y屬性值是一個數列。
(2).以x屬性值為例子,0規定第一個字元"s"距離左側的距離,10表示第二個字元"o"距離左側的距離,以此類推。然而字串有7個字元,但是數列中才有四個引數,那麼四個引數應用於字串中的前四個字元,剩餘的字元緊貼最後一個字元依次排列,對於y屬性值也是同樣的道理。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> svg { border:1px solid blue; overflow:visible; margin:50px; } </style> </head> <body> <svg width="200" height="200"> <text x="50%" y="50%">softwhy</text> </svg> </body> </html>
上面程式碼中,x和y屬性值是百分比,參考值是viewport視窗的尺寸。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> svg { border:1px solid blue; overflow:visible; margin:50px; } </style> </head> <body> <svg width="300" height="400"> <text x="10 30" y="0" dx="10,30" dy="10,20">softwhy</text> </svg> </body> </html>
上面程式碼中,不但規定了x和y屬性,而且還有dx和dy屬性。
x和y規定的是位置的絕對值,而dx和dy則是規定的一個絕對值的增量。
例如字元"s"使用x屬性規定距離左側的絕對位置是10,那麼它的最終位置要在10的基礎上再加10。與x和y屬性值類似,dx和dy的屬性值也可以是百分比,參考viewport視窗的尺寸。
相關文章
- SVG <rect> 繪製矩形SVG
- SVG 繪製直線SVG
- SVG <polyline> 繪製折線SVG
- SVG <ellipse> 繪製橢圓SVG
- SVG 繪製圓角矩形SVG
- SVG繪製餅狀圖SVG
- SVG <circle> 繪製圓形SVG
- 繪製文字
- SVG基礎知識 Adobe Illustrator繪製SVGSVG
- canvas 繪製文字Canvas
- SVG <path> 元素A指令繪製弧線SVG
- SVG繪製直線簡單介紹SVG
- canvas 繪製文字詳解Canvas
- SVG拖動繪製矩形程式碼例項SVG
- svg02——svg繪製基本圖形,瞭解常用的屬性SVG
- CoreText 入門(一) 文字繪製
- SVG繪製1px直線模糊問題SVG
- SVG 文字排版SVG
- [譯]Flutter是如何繪製文字的Flutter
- CSS、SVG、Canvas對特殊字型的繪製與匯出CSSSVGCanvas
- 輕量富文字非同步繪製框架非同步框架
- CSS & SVG 繪製寫作網格線的3種方式CSSSVG
- SVG <textPath>文字路徑SVG
- ☀️SVG對映反爬示例練習⚡直接提取SVG文字圖片的文字⚡SVG
- Tkinter (19) 文字部件 Text
- Android自定義View之Paint繪製文字和線AndroidViewAI
- canvas核心技術-如何繪製圖片和文字Canvas
- SVG 文字填充和描邊SVG
- SVG 文字路徑動畫SVG動畫
- SVG 旋轉文字字元SVG字元
- Art Text 4 for Mac藝術文字和圖示快速製作工具Mac
- CSS 文字裝飾 text-decoration & text-emphasisCSS
- 小程式利用Canvas繪製圖片和豎排文字Canvas
- CSS匹配input text文字框CSS
- svg製作及使用SVG
- HTML input text單行文字域HTML
- svg製作小圖示SVG
- Three.js之繪製中文文字並跟隨物體JS