The padding-left property sets the width of the padding area on the left of an element. That space sits between the content and the left border.
It always targets the physical left edge. For spacing that follows text direction, use padding-inline-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 left border.
Add a gap.2rem pushes the content inward from the left.
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 padding bugs come from mixing it with margin or logical properties.
margin
Padding is inside; margin is outside
padding-left pushes content away from the left border. margin-left pushes the whole box away from its neighbor.
rtl
Physical left ignores text direction
In RTL layouts, padding-left still pads the left edge. Prefer padding-inline-start for start-of-text spacing.
negative
Negative values are invalid
Padding cannot be negative. Use a negative margin if you need to pull an element outward.
percent
Percentage uses the parent width
10% is 10% of the containing block’s width, not the element’s height.
box
box-sizing changes the total size
With border-box, left padding is included inside the declared width. With content-box, it adds outside the content width.
Compatibility
Browser Support
padding-left is a browser layout property. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
padding-left
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-leftWidely supported
Bottom line: Safe for everyday left padding in every current browser.
Remember
Key Takeaways
Role: add inner space on the physical left edge, between content and border.
Common values: lengths and percentages (never negative).
Initial value:0. Not inherited.
RTL tip: use padding-inline-start when spacing should follow text direction.
One line:padding-left is physical left inner space — always left, never negative.
Frequently Asked Questions
It sets inner spacing on the left edge of an element, between the content and the left border.
The initial value is 0. No left padding is added until you set a length or percentage.
padding-left adds space inside the border. margin-left adds space outside the border, between this element and its neighbor.
padding-left always targets the physical left edge. padding-inline-start follows writing mode and direction, so it stays on the start of the text flow in LTR and RTL.
Yes. A percentage is relative to the containing block's width (its inline size in horizontal writing). Values cannot be negative.
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.