# text-align

The `text-align` CSS property describes how inline content like text is aligned in its parent block element. `text-align` does not control the alignment of block elements, only their inline content.

## Syntax

```/* Keyword values */
text-align: left;
text-align: right;
text-align: center;
text-align: justify;
text-align: justify-all;
text-align: start;
text-align: end;
text-align: match-parent;

/* Block alignment values (Non-standard syntax) */
text-align: -moz-center;
text-align: -webkit-center;

/* Global values */
text-align: inherit;
text-align: initial;
text-align: unset;
```

The `text-align` property is specified as a single keyword chosen from the list of values below.

### Values

`start`
The same as `left` if direction is left-to-right and `right` if direction is right-to-left.
`end`
The same as `right` if direction is left-to-right and `left` if direction is right-to-left.
`left`
The inline contents are aligned to the left edge of the line box.
`right`
The inline contents are aligned to the right edge of the line box.
`center`
The inline contents are centered within the line box.
`justify`
The inline contents are justified. Text should be spaced to line up its left and right edges to the left and right edges of the line box, except for the last line.
`justify-all`
Same as `justify`, but also forces the last line to be justified.
`match-parent`
Similar to `inherit`, but the values `start` and `end` are calculated according to the parent's `direction` and are replaced by the appropriate `left` or `right` value.

### Formal syntax

`start | end | left | right | center | justify | match-parent`

## Examples

### Left alignment

#### HTML

```<p class="example">
Integer elementum massa at nulla placerat varius.
Suspendisse in libero risus, in interdum massa.
Vestibulum ac leo vitae metus faucibus gravida ac in neque.
Nullam est eros, suscipit sed dictum quis, accumsan a ligula.
</p>```

#### CSS

```.example {
text-align: left;
border: solid;
}```

### Centered text

#### HTML

```<p class="example">
Integer elementum massa at nulla placerat varius.
Suspendisse in libero risus, in interdum massa.
Vestibulum ac leo vitae metus faucibus gravida ac in neque.
Nullam est eros, suscipit sed dictum quis, accumsan a ligula.
</p>```

#### CSS

```.example {
text-align: center;
border: solid;
}```

### Justify

#### HTML

```<p class="example">
Integer elementum massa at nulla placerat varius.
Suspendisse in libero risus, in interdum massa.
Vestibulum ac leo vitae metus faucibus gravida ac in neque.
Nullam est eros, suscipit sed dictum quis, accumsan a ligula.
</p>```

#### CSS

```.example {
text-align: justify;
border: solid;
}```

### Notes

The standard-compatible way to center a block itself without centering its inline content is setting the left and right `margin` to `auto`, e.g.:

```.something {
margin: auto;
}
```
```.something {
margin: 0 auto;
}
```
```.something {
margin-left: auto;
margin-right: auto;
}

```

## Accessibility concerns

The inconsistent spacing between words created by justified text can be problematic for people with cognitive concerns such as Dyslexia.

## Specifications

Specification Status Comment
CSS Logical Properties and Values Level 1
The definition of 'text-align' in that specification.
Editor's Draft No changes
CSS Text Module Level 3
The definition of 'text-align' in that specification.
Working Draft Added the `start`, `end`, and `match-parent` values. Changed the unnamed initial value to `start` (which it was).
CSS Level 2 (Revision 1)
The definition of 'text-align' in that specification.
Recommendation No changes
CSS Level 1
The definition of 'text-align' in that specification.
Recommendation Initial definition

Initial value `start`, or a nameless value that acts as `left` if `direction` is `ltr`, `right` if `direction` is `rtl` if `start` is not supported by the browser. block containers yes visual as specified, except for the `match-parent` value which is calculated against its parent's `direction` value and results in a computed value of either `left` or `right` discrete order of appearance in the formal grammar of the values

## Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support1 Yes13 Yes1
Prefixed `center`, `left`, and `right` values for block alignment1 ?1 No ?

1.3

Flow-relative values `start` and `end`1 No1 No ?3.1
`match-parent`16 ?40 No ? No
`justify-all` No No No No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes ? ?
Prefixed `center`, `left`, and `right` values for block alignment ? ? ? ? ? ? ?
Flow-relative values `start` and `end` ? ? ?4 ? ? ?
`match-parent` ? ? ?40 ? ? ?
`justify-all` No No No No No No ?