HTML, CSS & the Browser

HTML Element

Definition

An HTML element is the basic unit of a web page. Most are written as a start tag, some content and a matching end tag: <p>Hello</p> is a paragraph, <h1>Title</h1> a top-level heading. A few, called void elements, have no content and no end tag — <img>, <br> and <input> among them. Elements carry HTML attributes inside the start tag, which set things like an image source or the class a stylesheet targets. Because elements nest, a finished page is a tree: a body holding a div holding a p holding an a. The name in the tag is what tells the browser how to treat the thing, so swapping div for button changes far more than the appearance.

Why It Matters

The element you choose decides what the browser gives you for free. A button is focusable, responds to Enter and Space, and is announced as a button; a div styled to look like one does none of that until somebody writes the code by hand. Search engines and screen readers both read element names rather than styling, so a page built entirely from div and span reads as one undifferentiated blob. When a control on a page cannot be reached by keyboard, or a heading is ignored by search, the element name is the first thing worth checking.

How It Works

The browser reads the file top to bottom and turns each tag into a node in the DOM. Nesting in the source becomes parent and child relationships in that tree, which is why a missing </div> can drag half a page inside a sidebar — the parser has to guess where you meant to stop. Every element also has a default display value: div and p are block and take a full line, span and a are inline and sit in the flow of text. That default applies before any CSS runs at all. Styling then attaches to elements through selectors that match on tag name, class or attribute, and nothing in a stylesheet changes what an element means — only how it is painted.

Real-World Example

Someone publishes an AI-built landing page as a single index.html file at studio-brief.99helpers.site and finds the call to action does nothing on a phone. Viewing the source shows <div class="btn" onclick="open()">Get in touch</div> — styled correctly, but a div. Changing it to a button element, with the same class attached, makes it tappable, focusable and reachable by keyboard with no change to the CSS. The page looks identical after the swap; it simply works.

Common Mistakes

  • Using a div with a click handler instead of a button — it is invisible to keyboard users and to screen readers, and it will not submit a form
  • Leaving a tag unclosed and assuming the browser will sort it out — it does close it, but often in the wrong place, which shows up as everything after that point being indented or coloured wrongly
  • Treating h1 through h6 as font sizes and picking one for its look — headings set the document structure, and a stylesheet can make any of them any size

Related Terms

Put a file online in seconds

Drop in a document, an image, a page or a whole static website and share the link — free, with no build step and no server to set up.

Host a file free →