Attributes provide additional features or functionality to an element.
Attributes are placed inside the element's opening tag.
An element can have any number of attributes.
This example is a paragraph with 3 attributes: id, class, and style.
<p id='p1' class='color-teal' style='font-size:16px;'> Paragraph with three attributes. </p>
Attributes have two parts: a name and a value.
<element name1='value1' name2='value2'> ... </element>
<element> is the HTML element.name1 and name2 are the attribute names.value1 and value2 are the attribute values.Regarding placement, HTML attributes fall into 3 categories:
Note: Irrespective the category, an attribute is always just a modifier to an element.
A list with the global attributes that can be applied to any tag.
| Attribute | Description | |
|---|---|---|
| id | Sets a unique identifier for the element. | |
| class | Sets one or more CSS classes to be applied to the element. | |
| style | Sets the style for the element. | |
| data-* |
Defines additional data that can be used by JavaScript. |
|
| hidden | Specifies whether the element is hidden. | |
| title | Sets a title that displays as a tooltip when element is hovered. | |
| tabindex | Sets a tab sequence number relative to the other elements. | |
| lang | Sets the language for the element. | |
| draggable | Specifies whether the element can be dragged. | |
| accesskey | Sets a shortcut key for the element. | |
| inputmode | Sets keyboard configuration for when editing the element. | |
| spellcheck | Specifies whether to spellcheck the element. | |
| autocapitalize | Specifies to capitalize the data entered. | |
| contenteditable | Specifies whether the element is editable. | |
| dir | Sets the display direction: left-to-right or right-to-left. |
|
| is | Specifies that element behaves like a registered custom element. |
Note: Sometimes global attributes have no meaning on certain tags. For example, placing a tabindex on a <meta> tag is pointless. In that case the attribute is ignored.
Attributes that can be applied to a limited number of tags.
| Attribute | Elements | Description | |
|---|---|---|---|
| alt |
img area input |
Sets alternative text for when an image cannot be loaded. | |
| autocomplete |
input select textarea form |
Specifies whether browser can automatically autofill values for an input element. | |
| autofocus |
input select textarea button |
Specifies that element gets focus once the page is loaded. | |
| autoplay |
audio video |
Specifies that the media should play once the page is loaded. | |
| cite |
q blockquote del ins |
Specifies a document that is a citation for a quotation or a text change. | |
| colspan |
td th |
Sets the number of columns that the table cell should span. | |
| controls |
audio video |
Specifies that audio/video controls are displayed. | |
| crossorigin |
img link script audio video |
Specifies how an element will handle crossorigin requests. | |
| datetime |
time del ins |
Specifies the date and time of the changed text or time element. | |
| dirname |
input textarea |
Submits the direction (ltr or rtl) of the input or textarea field. | |
| disabled |
input select textarea button option optgroup fieldset |
Sets the element to disabled | |
| download |
a area |
Specifies to download the target when the element is clicked | |
| for |
label output |
Associates a label or output element with an input element. | |
| form |
input select textarea button meter output object fieldset |
Specifies which form the element belongs to. | |
| formaction |
button input |
Specifies where to process the element value(s) when submitted. | |
| formenctype |
button input |
Specifies the encoding type during form submission. | |
| formmethod |
button input |
Specifies the HTTP method (GET OR POST) to use during form submission. | |
| formnovalidate |
button input |
Specifies that form controls are not validated when the form is submitted. | |
| formtarget |
button input |
Specifies the tab or windows where to display the result. | |
| headers |
td th |
Specifies which header cells the current cell is related to. | |
| height |
img input canvas svg video embed iframe object |
Sets the height of the element. | |
| href |
a area link base |
Specifies the URL of the target page. | |
| hreflang |
a area link |
Specifies the language of the target page. | |
| label |
track option optgroup |
Provides a title for a track or a shorter label for the text in the element. | |
| loop |
audio video |
Specifies that the media repeat playing after it's finished. | |
| max |
input meter progress |
Sets the maximum value allowed for the element. | |
| maxlength |
input textarea |
Sets the maximum character length for the element. | |
| media |
a area link style source |
Sets the optimal media or device for the target document. | |
| min |
input meter |
Sets the minimum value for the element. | |
| multiple |
input select |
Specifies that the element can select multiple files or items. | |
| muted |
audio video |
Specifies the audio output of the media is muted, i.e. no sound. | |
| name |
input select textarea button iframe map meta output fieldset object param |
Sets the name of the element. Used as reference for Javascript, CSS, or form-data. | |
| placeholder |
input textarea |
Sets the placeholder text that shows while no data has been entered yet. | |
| preload |
audio video |
Specifies if and how a media file is preloaded. | |
| readonly |
input textarea |
Specifies that a control is read-only. | |
| rel |
a area link form |
Sets relationship between the current page and the target page. | |
| required |
input select textarea |
Specifies that the element requires a value before submission. | |
| rowspan |
td th |
Sets the number of rows that the table cell spans. | |
| size |
input select |
Sets the number of visible characters in an input control, or the number of visible items in a select control. | |
| sizes |
img link source |
Sets the size of an element depending on a set of media conditions. | |
| span |
col colgroup |
Sets the number of columns the element should span. | |
| src |
img script iframe audio video embed input source track |
Specifies the source (URL) of the element. | |
| srcset |
img source |
Specifies a number of sources (URLs) of the element. The browser uses the 'best' one. | |
| target |
a area form base |
Specifies the tab or windows where to display the result. | |
| type |
input button link style a area ol script source embed object |
Specifies a type detail or refinement of the underlying element. | |
| usemap |
img object |
Binds the element to a map with clickable areas. | |
| value |
input button option data li meter progress param |
Sets the value for the element. | |
| width |
img input canvas svg video embed iframe object |
Sets the width of the element. |
Single-tag attributes that can be applied to one tag only.
| Attribute | Element | Description | |
|---|---|---|---|
| abbr | th | Creates an abbreviated version of the header text. Used by screenreaders. | |
| accept | input | Specifies acceptable file types that can be selected from a file dialog. | |
| accept-charset | form | Sets the character encoding to use when submitting the form. | |
| action | form | Specifies the url of where to submit a form. | |
| async | script | Specifies that the script is executed when page is still loading. | |
| charset | meta | Specifies to the browser what character set to use for the page. | |
| checked | input | Specifies that the checkbox or radio button is checked (turned on). | |
| cols | textarea | Defines the width of a textarea by setting the number of visible characters. | |
| content | meta | Sets the value of the meta tag. Used with name and http-equiv properties. | |
| coords | area | Defines the coordinates for a clickable map area. | |
| data | object | Specifies the source (URL) of the object. | |
| default | track | Sets the default track to use if no other preferences are specified. | |
| defer | script | Specifies to wait executing the script file until the page has been loaded. | |
| enctype | form | Specifies the form data is encoded according to a given encoding type. | |
| high | meter | Sets the high end of the range in a meter control. | |
| http-equiv | meta | Specifies which HTTP header value to set in the meta tag. | |
| ismap | img | Specifies that the image click coordinates are sent to the server. | |
| kind | track | Specifies the type of track, such as captions, subtitles, chapters, etc. | |
| list | input | Specifies a list of suggested values that will appear in a dropdown form. | |
| loading | img | Specifies when to load an image upon page load. | |
| low | meter | Sets the low end of the range in a gauge control. | |
| method | form | Specifies the HTTP method (GET OR POST) to use when submitting the form. | |
| novalidate | form | Specifies that form controls are not validated when the form is submitted. | |
| open | details | Specifies whether the element is open and its contents is visible to the user. | |
| optimum | meter | Sets the optimum value in the range of a gauge control | |
| pattern | input | Specifies a regular expression that is validated when form is submitted. | |
| ping | a | Specifies a space separated list of 'pingable' URLS. | |
| poster | video | Specifies an image to display while video is loading or not playing yet. | |
| reversed | ol | Reverses the display order of the ordered list. | |
| rows | textarea | Set the height of the textarea by specifying the number of visible rows. | |
| sandbox | iframe | Specifies a list of permissions for framed content. | |
| scope | th | Specifies where in a table the header applies. Used by screen readers. | |
| selected | option | Sets the dropdown item that is selected (highlighted). | |
| shape | area | Used with the coords attribute to define the shape of an area. | |
| srcdoc | iframe | Specifies an HTML source of the framed content. | |
| srclang | track | Specifies the source language of the track's text data. | |
| start | ol | Sets the first value in a numeric ordered list. | |
| step | input | Sets the step size for input types: number, date, week, range and others. | |
| wrap | textarea | Specifies how the text in a textarea is wrapped when submitted. |