How to apply padding to multiple lines in CSS
How I used the box-decoration-break CSS property to apply padding to multiple lines
While re-designing some aspect of this blog I had the need to add some padding to each line of each blog post title.
I had this HTML:
<h1 class="post-title">
<span>{{ .Title }}</span>
</h1>
I added this CSS:
.post-title span {
padding: 0px 30px;
background-color: rgb(254,207,12);
}
and obviously it worked, it added a 30px padding at the left and right side of the article title, as you can see thanks to the yellow background:
But with a longer title, and the text flowing to a new line, I experienced a problem because the padding was not applied at the end of each line:
See? There’s no padding before the A
letter in the second line, and after the semicolon on the first line.
To fix that, I used this CSS property called box-decoration-break
with the value clone
, and its -webkit-
prefixed property for Safari:
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
Then it worked fine, across all browsers:
THE VALLEY OF CODE
THE WEB DEVELOPER's MANUAL
You might be interested in those things I do:
- Learn to code in THE VALLEY OF CODE, your your web development manual
- Find a ton of Web Development projects to learn modern tech stacks in practice in THE VALLEY OF CODE PRO
- I wrote 16 books for beginner software developers, DOWNLOAD THEM NOW
- Every year I organize a hands-on cohort course coding BOOTCAMP to teach you how to build a complex, modern Web Application in practice (next edition February-March-April-May 2024)
- Learn how to start a solopreneur business on the Internet with SOLO LAB (next edition in 2024)
- Find me on X