507

Stack Exchange sites use Markdown for questions and answers. Per the Markdown specification, intermixing HTML and Markdown tags is allowed, but not all the HTML tags are allowed, to avoid XSS.

Which HTML tags are allowed on Stack Exchange sites?

Return to FAQ index

0
232

Allowed HTML Tags

The Stack Exchange engine allows only the following safe, whitelisted subset of HTML tags.

Press your middle mouse button and wave your mouse left or right to scroll the table, or use your laptop's trackpad (if applicable):

Tag Title and Description Preview Markdown Equivalent
<a> Anchor
Used to create hyperlinks.
Stack Exchange
[Stack Exchange](https://meta.stackexchange.com)
<b> Bring Attention To
Used to draw the reader's attention to the contents, which are not otherwise granted special importance.
Stack Exchange
Renders the same as <strong>.
None, **this** syntax produces <strong>
<blockquote> Block Quotation
Indicates that the enclosed text is an extended quotation.
Stack Exchange
> Stack Exchange
<br> Line Break
Produces a line break in text (carriage-return)
Stack Exchange
Stack Exchange
Two spaces at the end of the first line:
Stack Exchange  
Stack Exchange
<code> Inline Code
Indicates that the text is a short fragment of computer code.
Stack Exchange
`Stack Exchange`
<del> Deleted Text
A range of text that has been deleted from a document.
Stack Exchange None on SE
<dd> Description Details
Provides the description, definition, or value for the preceding term (<dt>) in a description list (<dl>).
Stack Exchange
THIS IS A <dd>
None
<dl> Description List
A description list.
Term
Definition
Another term
Another definition
None
<dt> Description Term
A term in a description or definition list.
THIS IS A <dt>
Stack Exchange
None
<em> Emphasis
Marks text that has stress emphasis.
Stack Exchange
Renders same as <i>.
*Stack Exchange*
_Stack Exchange_
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
Section Heading
<h1><h6>

Stack Exchange

Stack Exchange

Stack Exchange

Stack Exchange

Stack Exchange
Stack Exchange
Stack Exchange
========
Stack Exchange
--------
# Stack Exchange
## Stack Exchange
### Stack Exchange
#### Stack Exchange
##### Stack Exchange
###### Stack Exchange
<hr> Defines a thematic change in the content, usually via a horizontal line.
Must be an empty line before and after the dashes:
---
<i> Idiomatic Text
A range of text that is set off from the normal text for some reason.
Stack Exchange
Renders same as <em>.
None, *this* syntax produces <em>
<img> Image Embed
Embeds an image into the document.
Picsum Image
![Picsum Image](http://picsum.photos/100)
<kbd> Keyboard Input
A span of inline text denoting textual user input from a keyboard, voice input, or any other text entry device.
Stack Exchange None
<li> Used to represent an item in a list.
  1. These
  2. are
  3. list
  4. items
- List item
+ List item
* List item
1. List item
<ol> Ordered List
An ordered list of items—typically rendered as a numbered list.
  1. Step one
  2. Step two
  3. Step three
1. Step one
2. Step two
3. Step three
<p> Paragraph.

Stack Exchange


No visual changes, used to create explicit paragraphs
Stack Exchange
<pre> Preformatted Text
Preformatted text which is to be presented exactly as written.
Stack Exchange
    Stack Exchange
```
Stack Exchange
```
<s> Renders text with a strikethrough, or a line through it. Stack Exchange None
<strike> Strikethrough is deprecated, use <del> or <s> instead. N/A None
<strong> Strong Importance
Indicates that the contents have strong importance, seriousness, or urgency. Renders in bold type.
Stack Exchange
**Stack Exchange**
__Stack Exchange__
<sub> Subscript
Inline text which should be displayed as subscript.
TextStack Exchange None
<sup> Superscript
Inline text which should be displayed as superscript.
TextStack Exchange
Because <small> is not on this list, many users use <sup> as an alternative.
None
<ul> Unordered List
  • An item
  • Another item
- An item
- Another item
- A third item
+ An item
+ Another item
+ A third item
* An item
* Another item
* A third item
<!-- language: [...] -->
<!-- language-all: [...] -->
Language comment
Used to specify the syntax highlighting language for four-space indent code blocks or for the entire post, respectively, when used at the top of a block or the post. The former syntax is deprecated, but is still supported due to older posts using it.
N/A
```[language-name]
Preferred way for code blocks
```

Note that since we allow the above HTML tags, to have tags show up as text you need to escape the < character. You can do this by marking it as code (with indentation or backticks as is done below) or by using the HTML entity &lt;.

Any tags not in the above list will be stripped out of the post. Do note that the sanitizer that strips out tags will recognize any text between < and > characters as HTML, and so any such text will be stripped out of the post; to prevent this, encode those characters as &lt; and &gt;.

Are HTML comments supported?

Yes and no. While they (often) do work in the way you specify, that's not because they're officially supported by the system; they just happen to get removed as invalid HTML. Technically speaking, only the above comments to specify a highlighting language for code blocks or the entire post are supported. This fact leads to some quirks and limitations, such as that comments cannot contain the > character even though the HTML specification permits those characters in comments.

Allowed attributes

Attributes are only allowed on <img> and <a>. Other tags with attributes will be stripped.

Allowed attributes for <img>

The following attributes are allowed on the <img> tag, in the order shown below. Note that the mobile theme enforces a maximum width of 90%, so specifying a height might not scale the image proportionally on the mobile sites.

Attributes must be specified in this order. You may omit attributes you do not want to specify, but specifying a later attribute before an earlier one will strip the tag.

  1. src=""
  2. width="" (1–999; plain number without any extensions like px)
  3. height="" (1–999; plain number without any extensions like px; pay attention to order warning above)
  4. alt=""
  5. title=""

Allowed attributes for <a>

Once again, attributes specified in reverse order to what is shown here will cause the tag to be stripped:

  1. href=""
    This attribute can only hold proper URL links, such as https://stackexchange.com/users/, or relative or protocol-relative URL links such as /q/3122 or //stackexchange.com/users/. They cannot hold other types of links, such as relative fragments (e.g. #3122), or protocols other than HTTP or HTTPS (e.g. javascript, ftp, or mailto). Invalid hrefs will strip the entire <a> tag.
  2. title=""

Important Notes

  • HTML tags unlisted above are stripped from the output. They may render in the client preview, but they will always be removed on the server.
  • The tags must be entered exactly as shown in the list. Exactly one space must be present between attributes with no spaces between the attribute name, = sign, and double quotes "".
    • Valid: <a href="...">
    • Invalid: <a href="...">
    • Invalid: <a href= "...">
  • While it is possible to make tables using Markdown syntax, we do not support the HTML <table> element.
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .