• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    HTML5 Canvas实现文本对齐的方法总结

    水平对齐textAlign

    JavaScript Code复制内容到剪贴板
    1. context.textAlign="center|end|left|right|start";  

    其中各值及意义如下表。

    描述
    start 默认。文本在指定的位置开始。
    end 文本在指定的位置结束。
    center 文本的中心被放置在指定的位置。
    left 文本左对齐,
    right 文本右对齐。

    我们通过一个例子来直观的感受一下。

    JavaScript Code复制内容到剪贴板
    1. <!DOCTYPE html>   
    2. <html lang="zh">   
    3. <head>   
    4.     <meta charset="UTF-8">   
    5.     <title>textAlign</title>   
    6.     <style>   
    7.         body { background: url("./images/bg3.jpg") repeat; }  
    8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
    9.     </style>   
    10. </head>   
    11. <body>   
    12. <div id="canvas-warp">   
    13.     <canvas id="canvas">   
    14.         你的浏览器居然不支持Canvas?!赶快换一个吧!!   
    15.     </canvas>   
    16. </div>   
    17.   
    18. <script>   
    19.     window.onload = function(){   
    20.         var canvas = document.getElementById("canvas");   
    21.         canvas.width = 800;   
    22.         canvas.height = 600;   
    23.         var context = canvas.getContext("2d");   
    24.         context.fillStyle = "#FFF";   
    25.         context.fillRect(0,0,800,600);   
    26.   
    27.         // 在位置 400 创建蓝线   
    28.         context.strokeStyle="blue";   
    29.         context.moveTo(400,100);   
    30.         context.lineTo(400,500);   
    31.         context.stroke();   
    32.   
    33.   
    34.         context.fillStyle = "#000";   
    35.         context.font="50px Arial";   
    36.   
    37.         // 显示不同的 textAlign 值   
    38.         context.textAlign="start";   
    39.         context.fillText("textAlign=start", 400, 120);   
    40.         context.textAlign="end";   
    41.         context.fillText("textAlign=end", 400, 200);   
    42.         context.textAlign="left";   
    43.         context.fillText("textAlign=left", 400, 280);   
    44.         context.textAlign="center";   
    45.         context.fillText("textAlign=center", 400, 360);   
    46.         context.textAlign="right";   
    47.         context.fillText("textAlign=right", 400, 480);   
    48.     };   
    49. </script>   
    50. </body>   
    51. </html>  

    运行结果:

    垂直对齐textBaseline

    JavaScript Code复制内容到剪贴板
    1. context.textBaseline="alphabetic|top|hanging|middle|ideographic|bottom";  

    其中各值及意义如下表。

    描述
    alphabetic 默认。文本基线是普通的字母基线。
    top 文本基线是em方框的顶端。
    hanging 文本基线是悬挂基线。
    middle 文本基线是em方框的正中。
    ideographic 文本基线是表意基线。
    bottom 文本基线是em方框的底端。

    首先咱们通过一个图来看一下各个基线代表的位置。

    我们通过一个例子来直观的感受一下。

    JavaScript Code复制内容到剪贴板
    1. <!DOCTYPE html>   
    2. <html lang="zh">   
    3. <head>   
    4.     <meta charset="UTF-8">   
    5.     <title>textBaseline</title>   
    6.     <style>   
    7.         body { background: url("./images/bg3.jpg") repeat; }  
    8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
    9.     </style>   
    10. </head>   
    11. <body>   
    12. <div id="canvas-warp">   
    13.     <canvas id="canvas">   
    14.         你的浏览器居然不支持Canvas?!赶快换一个吧!!   
    15.     </canvas>   
    16. </div>   
    17.   
    18. <script>   
    19.     window.onload = function(){   
    20.         var canvas = document.getElementById("canvas");   
    21.         canvas.width = 800;   
    22.         canvas.height = 600;   
    23.         var context = canvas.getContext("2d");   
    24.         context.fillStyle = "#FFF";   
    25.         context.fillRect(0,0,800,600);   
    26.   
    27.         //在位置 y=300 绘制蓝色线条   
    28.         context.strokeStyle="blue";   
    29.         context.moveTo(0,300);   
    30.         context.lineTo(800,300);   
    31.         context.stroke();   
    32.   
    33.         context.fillStyle = "#00AAAA";   
    34.         context.font="20px Arial";   
    35.   
    36.         //在 y=300 以不同的 textBaseline 值放置每个单词   
    37.         context.textBaseline="top";   
    38.         context.fillText("Top",150,300);   
    39.         context.textBaseline="bottom";   
    40.         context.fillText("Bottom",250,300);   
    41.         context.textBaseline="middle";   
    42.         context.fillText("Middle",350,300);   
    43.         context.textBaseline="alphabetic";   
    44.         context.fillText("Alphabetic",450,300);   
    45.         context.textBaseline="hanging";   
    46.         context.fillText("Hanging",550,300);   
    47.     };   
    48. </script>   
    49. </body>   
    50. </html>  

    运行结果:

  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    HTML5 Canvas实现文本对齐的方法总结 HTML5,Canvas,实现,文本,对齐,