Draw a red line at y=100, then place each word at y=100 with different textBaseline values:
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="400" height="200" style="border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); //Draw a red line at y=100 ctx.strokeStyle = "red"; ctx.moveTo(5, 100);/* w w w . j a v a 2s . c om*/ ctx.lineTo(395, 100); ctx.stroke(); ctx.font = "20px Arial" //Place each word at y=100 with different textBaseline values ctx.textBaseline = "top"; ctx.fillText("Top", 5, 100); ctx.textBaseline = "bottom"; ctx.fillText("Bottom", 50, 100); ctx.textBaseline = "middle"; ctx.fillText("Middle", 120, 100); ctx.textBaseline = "alphabetic"; ctx.fillText("Alphabetic", 190, 100); ctx.textBaseline = "hanging"; ctx.fillText("Hanging", 290, 100); </script> </body> </html>
The textBaseline property sets or gets the current text baseline used when drawing text.
The fillText()
and strokeText()
methods will use the specified textBaseline value when positioning the text on the canvas.
The textBaseline property Default value: alphabetic
context.textBaseline = "alphabetic|top|hanging|middle|ideographic|bottom";
Property Values
Values | Description |
---|---|
alphabetic | Default. The text baseline is the normal alphabetic baseline |
top | The text baseline is the top of the em square |
hanging | The text baseline is the hanging baseline |
middle | The text baseline is the middle of the em square |
ideographic | The text baseline is the ideographic baseline |
bottom | The text baseline is the bottom of the bounding box |