3.3.1_水平与垂直定位

3.3.1_水平与垂直定位

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>水平与垂直定位</title>
        <style>
            body{
                background: #eee;
            }
            #canvas{
                background: #fff;
                cursor: pointer;
                margin-left: 10px;
                margin-top: 10px;
                box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
                -webkit-box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
                -moz-box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
            }
        </style>
    </head>
    <body>
        <canvas id="canvas" width="1000" height="600"></canvas>
    </body>
    <script>
        var canvas = document.getElementById('canvas');
        var context = canvas.getContext('2d');
        var fontHeight = 24;
        var alignValues = ['start','center','end'];
        var baselineValues = ['top','middle','bottom','alphabetic','ideographic','hanging'];
        var x;
        var y;

        //初始化
        context.font = 'oblique normal bold 24px palatino';

        for(var align = 0;align<alignValues.length;align++){
            for(var baseline = 0; baseline<baselineValues.length;baseline++){
                x = 20+align*fontHeight*15; //文本垂直对齐方式的点
                y = 20 +baseline*fontHeight*3; //文本水平对齐方式的点

                drawText(alignValues[align]+'/'+baselineValues[baseline],alignValues[align],baselineValues[baseline])
                drawTextMarker();
                drawTextLine();

            }
        }
        //绘制文本
        function drawText(text,textAlign,textBaseline){
            if(textAlign){
                context.textAlign = textAlign;
            }
            if(textBaseline){
                context.textBaseline = textBaseline;
            }
            context.fillStyle = 'cornflowerblue';
            context.fillText(text,x,y);
        }
        //绘制标记
        function drawTextMarker(){
            context.save();
            context.fillStyle = 'yellow';
            context.fillRect(x,y,7,7);
            context.strokeRect(x,y,7,7);
            context.restore();
        }
        //绘制水平基准线
        function drawTextLine(){
            context.save();
            context.strokeStyle = 'gray';
            context.beginPath();
            context.moveTo(0,y);
            context.lineTo(canvas.width,y);
            context.stroke();
            context.restore();
        }
    </script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值