Recent Posts

HTML Tutorial / Form Validation with required, Length, and Range Limits
Apply built-in required, length, and numeric constraints, test error states, and understand why server-side validation remains necessary.

HTML Tutorial / Choose Input Types for Email, Numbers, Dates, and Choices
Choose email, number, date, checkbox, and radio inputs by their purpose. A complete form lets you compare date values, required groups, and the entries omitted by unselected controls.

HTML Tutorial / Use textarea, select, option, and button
Compare how textarea, select, option, and button hold values and behave. A complete form demonstrates required selection, submitted option values, and reset restoring initial values.

HTML Tutorial / Form Structure and GET vs. POST
Distinguish action, method, and name, then compare GET and POST requests. Inspect entries with FormData without sending them and compare disabled, readonly, and selectable controls.

HTML Tutorial / Connect Labels and Inputs Correctly
Connect labels to inputs with for and id, distinguish id from submitted name, and learn why placeholder text cannot replace a label.

HTML Tutorial / Accessible Tables: caption, scope, and Spanning Cells
Make table headings and data relationships clear with caption, th, and scope, and learn when colspan or rowspan makes a table harder to read.

HTML Tutorial / Table Basics: table, tr, th, and td
Build a basic HTML data table with rows and header or data cells, then organize its headings and body without using tables for page layout.

HTML Tutorial / Group Images and Captions with figure and figcaption
Use figure and figcaption to keep an image and its visible explanation together, and distinguish captions from image alt text.

HTML Tutorial / Divide a Page with Semantic Elements
Learn when to use header, nav, main, article, section, aside, and footer, then build a complete page whose regions and in-page links work together.

HTML Tutorial / When to Use div and span
Understand the structural difference between div and span, style only the content you need, and choose semantic elements when they better describe the content.