# HTML Block and Inline Elements

### Block-level Elements

A block-level element always starts on a new line, and the browsers automatically add some space (a margin) before and after the element.

A block-level element always takes up the full width available (stretches out to the left and right as far as it can).

Two commonly used block elements are: `<p>` and `<div>`.

The `<p>` element defines a paragraph in an HTML document.

The `<div>` element defines a division or a section in an HTML document.

<figure><img src="https://1737958340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVjGFBuDKR1b3eJbq0zoO%2Fuploads%2FDvytVqBDyPS9aaS3az6T%2Fimage.png?alt=media&#x26;token=a4a96f5c-8a4b-472b-bc4e-89c28024a4c1" alt=""><figcaption></figcaption></figure>

{% code overflow="wrap" lineNumbers="true" %}

```markup
<p>Hello World</p>
<div>Hello World</div>
```

{% endcode %}

Here are the block-level elements in HTML:

{% code overflow="wrap" lineNumbers="true" %}

```markup
<address>
<article>
<aside>
<blockquote>
<canvas>
<dd>
<div>
<dl>
<dt>
<fieldset>
<figcaption>
<figure>
<footer>
<form>
<h1>-<h6>
<header>
<hr>
<li>
<main>
<nav>
<noscript>
<ol>
<p>
<pre>
<section>
<table>
<tfoot>
<ul>
<video>
```

{% endcode %}

### Inline Elements

An inline element does not start on a new line.

An inline element only takes up as much width as necessary.

This is a \<span> element inside a paragraph.

{% code overflow="wrap" lineNumbers="true" %}

```html
<span>Hello World</span>
```

{% endcode %}

Here are the inline elements in HTML:

{% code overflow="wrap" lineNumbers="true" %}

```markup
<a>
<abbr>
<acronym>
<b>
<bdo>
<big>
<br>
<button>
<cite>
<code>
<dfn>
<em>
<i>
<img>
<input>
<kbd>
<label>
<map>
<object>
<output>
<q>
<samp>
<script>
<select>
<small>
<span>
<strong>
<sub>
<sup>
<textarea>
<time>
<tt>
<var>
```

{% endcode %}

### The \<div> Element

The `<div>` element is often used as a container for other HTML elements.

The `<div>` element has no required attributes, but `style`, `class` and `id` are common.

When used together with CSS, the `<div>` element can be used to style blocks of content:

{% code overflow="wrap" lineNumbers="true" %}

```markup
<div style="background-color:black;color:white;padding:20px;">
  <h2>London</h2>
  <p>London is the capital city of England. It is the most populous city in the United Kingdom, with a metropolitan area of over 13 million inhabitants.</p>
</div>
```

{% endcode %}

### The \<span> Element

The `<span>` element is an inline container used to mark up a part of a text, or a part of a document.

The `<span>` element has no required attributes, but `style`, `class` and `id` are common.

When used together with CSS, the `<span>` element can be used to style parts of the text:

{% code overflow="wrap" lineNumbers="true" %}

```markup
<p>My mother has <span style="color:blue;font-weight:bold;">blue</span> eyes and my father has <span style="color:darkolivegreen;font-weight:bold;">dark green</span> eyes.</p>
```

{% endcode %}

### Summary

* There are two display values: block and inline
* A block-level element always starts on a new line and takes up the full width available
* An inline element does not start on a new line and it only takes up as much width as necessary
* The `<div>` element is a block-level and is often used as a container for other HTML elements
* The `<span>` element is an inline container used to mark up a part of a text, or a part of a document
