bottom
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
The bottom CSS property participates in setting the vertical position of a positioned element. This inset property has no effect on non-positioned elements.
Try it
bottom: 0;
bottom: 4em;
bottom: 10%;
bottom: 20px;
<section id="default-example">
<div class="example-container">
<div id="example-element">I am absolutely positioned.</div>
<p>
As much mud in the streets as if the waters had but newly retired from the
face of the earth, and it would not be wonderful to meet a Megalosaurus,
forty feet long or so, waddling like an elephantine lizard up Holborn
Hill.
</p>
</div>
</section>
.example-container {
border: 0.75em solid;
padding: 0.75em;
text-align: left;
position: relative;
width: 100%;
min-height: 200px;
}
#example-element {
background-color: #264653;
border: 4px solid #ffb500;
color: white;
position: absolute;
width: 140px;
height: 60px;
}
The effect of bottom depends on how the element is positioned (i.e., the value of the position property):
- When
positionis set toabsoluteorfixed, thebottomproperty specifies the distance between the outer edge of the element's bottom margin and the outer edge of the containing block's bottom padding, or, in the case of anchor positioned elements when theanchor()function is used within the value, relative to the position of the specified<anchor-side>edge. Thebottomproperty is compatible with thetop,bottom,start,end,self-start,self-end,center, and<percentage>values. - When
positionis set torelative, thebottomproperty specifies the distance the element's bottom edge is moved above its normal position. - When
positionis set tosticky, thebottomproperty is used to compute the sticky-constraint rectangle. - When
positionis set tostatic, thebottomproperty has no effect.
When both top and bottom are specified, position is set to absolute or fixed, and height is unspecified (either auto or 100%) both the top and bottom distances are respected. In all other situations, if height is constrained in any way or position is set to relative, the top property takes precedence and the bottom property is ignored.
Syntax
/* <length> values */
bottom: 3px;
bottom: 2.4em;
bottom: calc(anchor(--my-anchor 50%) + 5px);
bottom: anchor-size(width);
/* <percentage>s of the height of the containing block */
bottom: 10%;
/* Keyword value */
bottom: auto;
/* Global values */
bottom: inherit;
bottom: initial;
bottom: revert;
bottom: revert-layer;
bottom: unset;
Values
<length>-
A negative, null, or positive
<length>:- for absolutely positioned elements, it represents the distance to the bottom edge of the containing block.
- for relatively positioned elements, it represents the distance that the element is moved above its normal position.
- for anchor-positioned elements, the
anchor()function resolves to a<length>value relative to the position of the associated anchor element's top or bottom edge (see Using inset properties withanchor()function values), and theanchor-size()function resolves to a<length>value relative to the associated anchor element's width or height (see Setting element position based on anchor size).
<percentage>-
A
<percentage>of the containing block's height. auto-
Specifies that:
- for absolutely positioned elements, the position of the element is based on the
topproperty, whileheight: autois treated as a height based on the content; or iftopis alsoauto, the element is positioned where it should vertically be positioned if it were a static element. - for relatively positioned elements, the distance of the element from its normal position is based on the
topproperty; or iftopis alsoauto, the element is not moved vertically at all.
- for absolutely positioned elements, the position of the element is based on the
Formal definition
| Initial value | auto |
|---|---|
| Applies to | positioned elements |
| Inherited | no |
| Percentages | refer to the height of the containing block |
| Computed value | if specified as a length, the corresponding absolute length; if specified as a percentage, the specified value; otherwise, auto |
| Animation type | a length, percentage or calc(); |
Formal syntax
bottom =
auto |
<length-percentage> |
<anchor()> |
<anchor-size()>
<length-percentage> =
<length> |
<percentage>
<anchor()> =
anchor( <anchor-name>? &&
<anchor-side> , <length-percentage>? )
<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )
<anchor-name> =
<dashed-ident>
<anchor-side> =
inside |
outside |
top |
left |
right |
bottom |
start |
end |
self-start |
self-end |
<percentage> |
center
<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline
Examples
>Absolute and fixed positioning
This example demonstrates the difference in behavior of the bottom property, when position is absolute versus fixed.
HTML
<p>
This<br />is<br />some<br />tall,<br />tall,<br />tall,<br />tall,<br />tall<br />content.
</p>
<div class="fixed"><p>Fixed</p></div>
<div class="absolute"><p>Absolute</p></div>
CSS
p {
font-size: 30px;
line-height: 2em;
}
div {
width: 48%;
text-align: center;
background: rgb(55 55 55 / 20%);
border: 1px solid blue;
}
.absolute {
position: absolute;
bottom: 0;
left: 0;
}
.fixed {
position: fixed;
bottom: 0;
right: 0;
}
Result
Specifications
| Specification |
|---|
| CSS Positioned Layout Module Level 3> # insets> |
Browser compatibility
Loading…
See also
top,left, andrightinsetshorthandinset-block-start,inset-block-end,inset-inline-start, andinset-inline-endinset-blockandinset-inlineshorthandsposition- CSS positioned layout module