Learn how to build, test, deploy, and maintain robust software systems.
Every website is built from three core technologies: HTML gives a page structure and meaning, CSS controls how it looks, and JavaScript makes it interactive. Understanding these three — and how they come together in the browser — is the foundation for everything else in frontend development. This lesson covers how a webpage loads, how to write semantic and accessible HTML, how CSS layout works with the box model, Flexbox, and Grid, how to make a page responsive, and how the DOM and events let JavaScript respond to the user. You do not need a framework yet. Everything here works with plain HTML, CSS, and JavaScript, and it is exactly the knowledge that makes learning a framework later much easier.
HTML describes the structure of a document using elements. Semantic elements describe meaning, not just appearance, which helps accessibility and search engines.
| Element | Purpose |
|---|---|
| <header> / <footer> | Top and bottom of a page or section |
| <nav> | Navigation links |
| <main> | The primary content |
| <section> / <article> | Thematic groupings |
CSS styles elements using selectors, properties, and values. The "cascade" decides which rule wins when several match, using specificity and source order.
Every element is a box. Content is surrounded by padding, a border, and margin. Understanding this is the key to controlling spacing and size.
| Flexbox | CSS Grid | |
|---|---|---|
| Axis | One-dimensional (row or column) | Two-dimensional (rows and columns) |
| Best for | Laying out items along one line | Full page layouts |
The Document Object Model (DOM) is the in-memory tree of a page. JavaScript selects elements and changes their content or style by manipulating the DOM.
Forms collect user input. Each input should have a label, and a submit event lets you validate and process the data. Basic validation can happen in the browser before the data is sent anywhere.
This shows the three layers together: HTML structure, CSS styling, and JS interactivity.
Lay items out horizontally with equal space between them.
(items are spread across the row)
Switch the layout at a mobile breakpoint.
(items stack vertically on small screens)