The padding-top property sets the height of the padding area on the top of an element. That space sits between the content and the top border.
It always targets the physical top edge. For spacing that follows writing mode, use padding-block-start. To set all sides at once, use the padding shorthand.
Standard-track.
Not deprecated and not experimental. A long-standing CSS box-model property with universal browser support.
Default is zero. With 0, content sits against the top border.
Add a gap.2rem pushes the content downward.
Same border, different padding. Only the inner space changes.
Not margin. The outer position of the box stays the same; only the inside shifts.
Edge Cases & Pitfalls
Most top-padding bugs come from percentages or mixing padding with margin.
percent
Percentage uses width, not height
padding-top: 10% is 10% of the containing block’s width. It is not based on the parent height.
margin
Padding is inside; margin is outside
padding-top pushes content away from the top border. margin-top pushes the whole box away from the element above.
logical
Physical top ignores writing mode
In vertical writing, “start” may not be top. Prefer padding-block-start for writing-mode-aware spacing.
negative
Negative values are invalid
Padding cannot be negative. Use a negative margin if you need to pull an element upward.
box
box-sizing changes the total size
With border-box, top padding is included inside the declared height. With content-box, it adds outside the content height.
Compatibility
Browser Support
padding-top is a browser layout property. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
padding-top
Length and percentage values work in all major browsers, including older Internet Explorer versions.
99%Common values
Google Chrome1+
Full
Mozilla Firefox1+
Full
Apple Safari1+
Full
Microsoft Edge12+
Full
OperaSupported
Full
Samsung InternetSupported
Full
Internet Explorer4+
Full
padding-topWidely supported
Bottom line: Safe for everyday top padding in every current browser.
Remember
Key Takeaways
Role: add inner space on the physical top edge, between content and border.
Common values: lengths and percentages (never negative).
Initial value:0. Not inherited.
Percent tip: top percentages resolve against the parent width.
One line:padding-top is physical top inner space — always top, never negative.
Frequently Asked Questions
It sets inner spacing on the top edge of an element, between the content and the top border.
The initial value is 0. No top padding is added until you set a length or percentage.
padding-top adds space inside the border. margin-top adds space outside the border, between this element and the one above it.
padding-top always targets the physical top edge. padding-block-start follows writing mode, so it can map to a different physical side in vertical text.
No. A percentage is relative to the containing block's width (inline size), even for top padding. That surprises many beginners.
It is Baseline and widely available in all major browsers, including older Internet Explorer versions. It is a browser layout property, not a Node.js feature.