Canvas 文字的对齐方式(textAlign(),textBaseline())

本文探讨了Canvas API中用于文字对齐的属性`textAlign`和`textBaseline`,通过实例代码展示了如何在画布的四个角精确地绘制文字,为网页图形设计提供灵活的文字布局方法。
摘要由CSDN通过智能技术生成


demo.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        canvas {
            border:1px solid red;
        }
    </style>
</head>
<body>
    <canvas id="cvs" width="500" height="500"></canvas>
    <script>
        var cvs = document.getElementById('cvs');
        var ctx = cvs.getContext('2d');

        ctx.font = '2em 微软雅黑';   //只有设置字体样式(微软雅黑)后,大小才会生效。

        /*
        * 设置文字的水平对其方式:
        * ctx.textAlign = 'left || start' 、 'right || end' 、 'center'
        * 默认值为start。
        * */

        /*
        * 设置文字的垂直对其方式:
        * ctx.textBaseline = 'top' 、'bottom'、'middle'、'alphabetic'、'hanging'、'ideographic'
        * 默认值为alphabetic。
        * */

        ctx.textAlign = 'left';
        ctx.textBaseline = 'ideographic';  //和'bottom'效果一样。
        ctx.fillText( '咯咯咯咯咯咯', 100, 200 );

        // 绘制文字的参考点
        ctx.beginPath();
        ctx.arc( 100, 200, 4, 0, Math.PI * 2 );
        ctx.fill();
    </script>
</body>
</html>


在画布四个角绘制文字.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        canvas {
            border:1px solid red;
        }
    </style>
</head>
<body>
    <canvas id="cvs" width="500" height="500"></canvas>
    <script>
        var cvs = document.getElementById('cvs');
        var ctx = cvs.getContext('2d');

        ctx.font = '28px 微软雅黑';  //只有设置字体样式(微软雅黑)后,大小才会生效。
        ctx.fillStyle = 'deeppink';

        // 在画布的左上角绘制一段文字
        ctx.textAlign = 'left';
        ctx.textBaseline = 'top';
        ctx.fillText( '左上角', 0, 0 );

        // 在画布的右上角绘制一段文字
        ctx.textAlign = 'right';
        ctx.textBaseline = 'top';
        ctx.fillText( '右上角', cvs.width, 0 );

        // 在画布的左下角绘制一段文字
        ctx.textAlign = 'left';
        ctx.textBaseline = 'bottom';
        ctx.fillText( '左下角', 0, cvs.height );

        // 在画布的右下角绘制一段文字
        ctx.textAlign = 'right';
        ctx.textBaseline = 'bottom';
        ctx.fillText( '右下角', cvs.width, cvs.height );
    </script>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值