#6 文字的渲染

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

幾個(gè)常用屬性:

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

一.渲染文字

最基本的示例:

ctx.font = 'bold 20px Arial';

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

當(dāng)然也可以使用 strokeText() 對(duì)字體進(jìn)行描邊

二.API 講解

1.fillText() | strokeText()

函數(shù)簽名:

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

示例:

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

2.font

默認(rèn)值: '20px sans-serif'

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

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

說(shuō)一下比較少見的font-variant屬性:

font-variant: normal (默認(rèn)值)
              small-caps // 表示字號(hào)不變,將字母設(shè)置為大寫 

3.textAlign 文本對(duì)齊

這個(gè)和css中 text-align一致,用來(lái)繪制橫向坐標(biāo)對(duì)齊:

ctx.textAlign = left
                center
                right

4.textBaseline

這個(gè)和css中 vertical-align一致,用于設(shè)置文本的基準(zhǔn)線對(duì)齊方式:

ctx.textBaseline = top
                   middle
                   bottom

5.measureText(string).width

計(jì)算渲染文字的寬度

調(diào)用這個(gè)函數(shù)之前必須先設(shè)置好font屬性,因?yàn)閒ont屬性會(huì)影響這個(gè)屬性的值

ctx.measureText(string).width

總結(jié)

文字的繪制和css樣式中設(shè)置文字的屬性比較相似,當(dāng)時(shí)canvas中的一些其它屬性,比如fillStyle, strokeStyle等使得文字更加的強(qiáng)大

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,149評(píng)論 1 92
  • HTML標(biāo)簽解釋大全 一、HTML標(biāo)記 標(biāo)簽:!DOCTYPE 說(shuō)明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,530評(píng)論 1 41
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,184評(píng)論 0 1
  • 1.塊級(jí)元素和行內(nèi)元素 塊級(jí)(block-level)元素;行內(nèi)(內(nèi)聯(lián)、inline-level)元素。 塊元素的...
    饑人谷_小侯閱讀 2,200評(píng)論 1 4
  • 隔著一扇門,她,低頭沉默。他,盯著手上她還給他的戒指,這個(gè)時(shí)候的空氣是那么的安靜,外面還在飄著雪花。接著,他轉(zhuǎn)身...
    劉紹東閱讀 298評(píng)論 0 1

友情鏈接更多精彩內(nèi)容