#6 文字的渲染

文字的渲染和css樣式中的font屬性設置很相識,其理念是相通的

幾個常用屬性:

  • font
  • fillText(), strokeText(): 注意最后有個可選參數'maxLength',用來設置文字的寬度
  • textAlign, textBaseline
  • mesureText(string).width: 獲取字符串顯示的寬度(單位: px)

一.渲染文字

最基本的示例:

ctx.font = 'bold 20px Arial';

// 這個fillStyle 可以使用
// createPattern中函數進行更豐富的設置
ctx.fillStyle = 'red'
ctx.fillText('hello canvas', 100, 100)

當然也可以使用 strokeText() 對字體進行描邊

二.API 講解

1.fillText() | strokeText()

函數簽名:

/*
 * @param string: 就是要繪制的文字
 * @param x, y: 繪制開始的坐標(x, y)
 * @param [maxLen]: 可選參數,繪制上面文字,允許的最大寬度
 */
fillStyle(string, x, y, [maxLen])
strokeStyle(string, x, y, [maxLen])

示例:

fillText('hello canvas', 100, 100)
fillText('hello canvas', 100, 200, 400)

2.font

默認值: '20px sans-serif'

ctx.font =
  font-style font-variant font-weight
  font-size font-family

可以看出和css中font的設置一樣,但是canvas中如果設置font則至少要設置字體大小和字體類型2個值

說一下比較少見的font-variant屬性:

font-variant: normal (默認值)
              small-caps // 表示字號不變,將字母設置為大寫 

3.textAlign 文本對齊

這個和css中 text-align一致,用來繪制橫向坐標對齊:

ctx.textAlign = left
                center
                right

4.textBaseline

這個和css中 vertical-align一致,用于設置文本的基準線對齊方式:

ctx.textBaseline = top
                   middle
                   bottom

5.measureText(string).width

計算渲染文字的寬度

調用這個函數之前必須先設置好font屬性,因為font屬性會影響這個屬性的值

ctx.measureText(string).width

總結

文字的繪制和css樣式中設置文字的屬性比較相似,當時canvas中的一些其它屬性,比如fillStyle, strokeStyle等使得文字更加的強大

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,796評論 1 92
  • HTML標簽解釋大全 一、HTML標記 標簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,310評論 1 41
  • 學習CSS的最佳網站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,089評論 0 1
  • 1.塊級元素和行內元素 塊級(block-level)元素;行內(內聯、inline-level)元素。 塊元素的...
    饑人谷_小侯閱讀 2,038評論 1 4
  • 隔著一扇門,她,低頭沉默。他,盯著手上她還給他的戒指,這個時候的空氣是那么的安靜,外面還在飄著雪花。接著,他轉身...
    劉紹東閱讀 243評論 0 1