The padding-block-end property sets inner spacing on the block-end side of an element. In horizontal writing modes, that is usually the bottom padding between content and the border.
The padding-block-end property in CSS is part of the Logical Properties and Values specification. It sets the padding on the block-end side of an element, which corresponds to the bottom edge in horizontal writing modes such as English.
This property is useful for creating layouts that adapt to different writing modes, such as vertical text or multilingual pages where the block axis may not align with physical top and bottom edges.
Definition and Usage
Apply padding-block-end when you need inner spacing on only the block-end side and want that spacing to follow the block axis instead of a fixed physical bottom edge. Use it for paragraph spacing, list item gaps, card footers, and any component that needs extra room after the content along the block direction.
Like regular padding, padding-block-end increases the visible size of an element’s background and border box. It never collapses and always stays inside the element’s border.
💡
Beginner Tip
In horizontal writing modes, padding-block-end: 20px; looks like bottom padding. RTL changes inline-start and inline-end, not block-end — block-end stays at the bottom until the writing mode itself changes.
Horizontal writing → block-end is bottomVertical writing → block-end follows text flow
Foundation
📝 Syntax
The syntax for the padding-block-end property is straightforward. You can specify the padding value using units like pixels, ems, percentages, and more.
syntax.css
element{padding-block-end:value;}
Here, value can be a length, percentage, or the keyword auto.
Basic Example
padding-block-end.css
p{padding-block-end:20px;border:1px solid #ccc;}
Cheat Sheet
⚡ Quick Reference
Question
Answer
Initial value
0
Applies to
Block-end padding side only
Inherited
No
Animatable
Yes, as a length
Common use
Paragraph spacing, list gaps, card footers, and writing-mode-aware block-end spacing
Defaults
🎯 Default Value
The default value of the padding-block-end property is 0, which means there is no padding applied on the block-end side unless you set it explicitly.
Reference
💎 Property Values
Value
Example
Description
Length
padding-block-end: 20px;
A fixed value such as 10px, 1em, 2rem, etc.
Percentage
padding-block-end: 5%;
A percentage of the containing block’s inline size, such as 5%.
Four boxes with the same content and different pbe- utility classes showing increasing block-end inner spacing:
pbe-sm
pbe-md
pbe-lg
pbe-xl
Hands-On
Examples Gallery
Start with the reference paragraph example, try different block-end values, add spacing between stacked items, and compare logical block-end padding with physical bottom padding.
🔢 Basic padding-block-end
Start with the reference example — block-end padding on a paragraph with a visible border.
Example 1 — Paragraph with Block-End Padding
In this example, we’ll set the padding-block-end property to add padding at the block-end of a paragraph.
padding-block-end-example.html
<style>p{padding-block-end:20px;border:1px solid #ccc;}</style><p>
This paragraph has 20px of padding at the block-end, which is at the bottom in this writing mode.
</p>
Each class sets a different block-end padding while leaving block-start unchanged. The background fills the padding area so you can compare the spacing visually.
🛠 Layout Patterns
Apply block-end padding to stacked content and compare logical vs physical properties.
Example 3 — Stack Item Spacing
Add block-end padding to list items so each row has breathing room before the next item.
Block-end padding creates space between the item content and its divider line. Removing padding on the last item avoids extra empty space at the bottom of the stack.
In horizontal English, both approaches look the same. padding-block-end stays correct when writing mode changes; physical bottom padding does not.
Companion
padding-block-end vs padding-block, padding-bottom & block-start
The padding-block shorthand sets both block-start and block-end padding in one declaration. Use padding-block-end when you need spacing on only the block-end side.
padding-bottom always targets the physical bottom edge. Pair padding-block-end with padding-block-start for full per-edge block-axis control, or use padding for physical four-side shorthand.
padding-block-end-companion.css
/* Block-end only */.card-footer{padding-block-end:1.25rem;}/* Both block sides via shorthand */.section{padding-block:1rem2rem;}/* Physical fallback for older browsers */.legacy-card{padding-bottom:1.25rem;}
A11y
♿ Accessibility
Improve readability — Paragraphs and list items benefit from block-end padding so content does not crowd divider lines or borders.
Respect writing modes — Logical block-end padding keeps spacing correct for users of vertical or mixed writing-mode layouts.
Do not hide content — Very large block-end padding on small screens can push important content out of view.
Keep focus visible — Padding adjusts inner spacing; it should not replace visible focus outlines on interactive elements.
Test zoomed layouts — Users who zoom in rely on comfortable padding to keep text readable.
🧠 How padding-block-end Works
1
The browser finds block-end
Writing mode decides which physical edge is block-end. In horizontal-tb, that is the bottom edge regardless of text direction.
Writing mode
2
You set a padding value
Write padding-block-end: 20px; with a length, percentage, or auto.
CSS rule
3
Browser adds space on block-end
Padding is inserted between the content edge and the border on the block-end side only.
Box model
=
▦
Targeted block-end spacing
Content has breathing room after it along the block axis without affecting block-start.
Compatibility
Browser Compatibility
The padding-block-end property is supported in most modern browsers, including the latest versions of Chrome, Firefox, Safari, Edge, and Opera. However, it is always a good practice to test your website across different browsers to ensure compatibility.
✓ Baseline · Modern browsers
Logical block-end padding in today’s browsers
Chrome, Firefox, Safari, Edge, and Opera support padding-block-end in current versions.
96%Modern browser support
Google Chrome69+ · Desktop & Mobile
Full support
Mozilla Firefox41+ · Desktop & Mobile
Full support
Apple Safari12.1+ · macOS & iOS
Full support
Microsoft Edge79+ · Chromium
Full support
Opera56+ · Modern versions
Full support
padding-block-end property96% supported
Bottom line: Safe to use in modern projects. For older browsers, pair with padding-bottom as a fallback.
Wrap Up
Conclusion
The padding-block-end property provides a flexible way to control the padding at the block-end side of an element, adapting to different writing modes and text directions.
It is especially useful for creating multilingual websites where the layout needs to respond to various text orientations. Experiment with this property to achieve consistent and responsive design across different languages and devices.
Use padding-block-end for spacing after content along the block axis
Prefer rem or em for scalable block-end spacing
Pair with padding-block-start for per-edge block control
Use logical properties in multilingual or vertical writing-mode layouts
Provide padding-bottom fallback for legacy browser support
❌ Don’t
Assume RTL changes block-end in horizontal writing modes
Confuse block-end with inline-end (right in LTR)
Use excessive block-end padding that breaks mobile layouts
Forget that percentage padding is based on inline size
Replace margin with padding-block-end for outer spacing between elements
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about padding-block-end
Use these points when spacing content on the block-end side.
5
Core concepts
↓01
Block-End Only
One logical edge.
Purpose
002
Default 0
No spacing.
Default
wm03
Writing Mode
Bottom in horizontal-tb.
Axis
%04
Units
px, em, rem, %, auto.
Values
pb05
Not padding-bottom
Logical vs physical.
Companion
❓ Frequently Asked Questions
The padding-block-end property sets inner spacing on the block-end side of an element. In horizontal writing modes, that is usually the bottom padding between the content and the border.
The default value is 0, meaning no block-end inner spacing is applied unless you set padding-block-end explicitly.
padding-bottom always targets the physical bottom edge. padding-block-end follows the block axis, so it stays correct when the writing mode changes, such as in vertical text layouts.
In horizontal writing modes, block-end is still the bottom edge. RTL affects inline-start and inline-end (left and right), not block-end. Block-end only changes when the writing mode changes, for example to vertical-rl.
Use padding-block-end when you need spacing on only the block-end side and want that spacing to follow logical CSS. It pairs well with padding-block-start and the padding-block shorthand.