HTML Tutorials

Overview

The <canvas> tag is used to draw graphics on the page using a scripting language like JavaScript, by creating a drawing area. The default width is 300px and heigh 150px, but you can make it any size desired by including the width and height attributes.

<canvas id="my_canvas" width="500" height="500">
    Your browser does not support the canvas tag.
</canvas>

Once you have the canvas on the page, JavaScript is used to actually draw the shapes, gradients, and text. What is drawn on the canvas is only limited by your JavaScript skills.

The JavaScript to control the drawing would be placed in the document head, or better yet, linked to in its own scripts document.

JavaScript

Draw a Series of Lines

<script>
    var canvas = document.getElementById('my_canvas');
    var ctx = canvas.getContext('2d');
    ctx.moveTo(0,0);
    ctx.lineTo(500,500);
    ctx.lineTo(0,100);
    ctx.lineTo(200,0);
    ctx.lineTo(0,0);
    ctx.stroke();
</script>

Draw a Circle

<script>
    var canvas = document.getElementById('my_canvas');
    var ctx = canvas.getContext('2d');
    ctx.beginPath();
    ctx.arc(250, 250, 200, 0, 2 * Math.PI);
    ctx.stroke();
</script>

Create a Gradient

<script>
    var canvas = document.getElementById('my_canvas');
    var ctx = canvas.getContext('2d');
    // create gradient
    var grd = ctx.createLinearGradient(0, 0, 500, 400);
    grd.addColorStop(0, 'red');
    grd.addColorStop(1, 'green');
    // fill with gradient
    ctx.fillStyle = grd;
    ctx.fillRect(0, 0, 500, 500);
</script>

Write Text to the Canvas

<script>
    var canvas = document.getElementById('my_canvas');
    var ctx = canvas.getContext('2d');
    ctx.font = '30px Helvetica';
    ctx.fillText('This is being written to the canvas.', 10, 250);
</script>

Attributes

The following attributes can be used within the <canvas> tag.

AttributeValueDescription
heightpixelsSpecifies the height of the canvas (default value is 150)
widthpixelsSpecifies the width of the canvas (default value is 300)

HTML Notes:

  • In our HTML section the term “tag” and “element” are often used interchangeably to refer to both the tag used to create a page element and the element created by the tag (<p> tag = <p> element = paragraph on the page)
  • HTML5 is not case sensitive; so <P> is the same as <p>, <H1> is the same as <h1>
  • Global attributes can be used with all HTML tags and are therefore not mentioned on every tag page
  • To write clean, readable HTML code, it is best to use indentation whereas elements within elements are indented (tabbed or spaces) to create something that looks like a project outline
  • The browser will automatically remove any extra spaces and lines in your HTML code when the page is displayed
  • Double quotes or single quotes can be used around HTML attribute values, but when the attribute value itself contains one form of quote, it will be necessary to use the other around the attribute

We’d like to acknowledge that we learned a great deal of our coding from W3Schools and TutorialsPoint, borrowing heavily from their teaching process and excellent code examples. We highly recommend both sites to deepen your experience, and further your coding journey. We’re just hitting the basics here at 1SMARTchicken.