Forum Moderators: not2easy
Each box has a content area (e.g., text, an image, etc.) and optional surrounding padding, border, and margin areas.CSS Box Model [w3.org]
The fix to keep the box the same size is to put a margin on the text rather than padding the box.
But then you need two elements: an outer one to hold the background image, and an inner one to hold the text.
<div style="width:220px;border:1px solid #000;padding:0;margin:0;">
<p style="margin:0 0 0 40px;padding:0;">Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah </p>
</div> <div style="width:220px;border:1px solid #000;padding:0;margin:0 0 0 20px;">
<p style="margin:0 0 0 40px;padding:0;">Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah </p>
</div> <div style="width:220px;border:1px solid #000;padding:0;margin:0 0 0 20px;">
<p style="width:140px;margin:0 auto 0 auto;padding:0;border:1px solid blue;">Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah </p>
</div> <div style="width:220px;border:1px solid #000;padding:0;margin:0 0 0 200px;">
<p style="width:140px;margin:0 auto 0 auto;padding:0;border:1px solid blue;">Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah </p>
</div> <div style="width:220px;border:1px solid #000;padding:0;margin:0 0 0 200px;">
<p style="margin:0 40px 0 40px;padding:0;border:1px solid blue;">Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah </p>
</div> <div style="width:220px;border:1px solid #000;padding:0;margin:0;">
<p style="margin:0 40px 0 40px;padding:0;border:1px solid blue;">Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah Blah text blah blah blah </p>
</div>
No you don't... All you have to do is increase the left margin of the <p> with the text to get it where you want it. You don't need a separate container for the text at all.
I was apparently under the misunderstanding that padding could only operate inside the element's defined "width", not add to the total space. Now I am clear.