FAQ: The Box Model - Padding II

This community-built FAQ covers the “Padding II” exercise from the lesson “The Box Model”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development

Learn CSS

FAQs on the exercise Padding II

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

When using the padding property in CSS: if you can write out all the values for padding in one line of code, is there ever a reason to use the other properties like padding-top or padding-right?

From what I understand, the best method of writing the margin or padding in CSS is to use the shorthand “padding” rather than “padding-left”, “padding-right”, and so on. The shorthand only takes one line of space and is easily understood by anyone reading the code.

The article on W3 has more information about the shorthand, and only briefly mentions the more defined properties. https://www.w3schools.com/css/css_padding.asp

My question here is whether it is best practice to write out all four options of padding or margins when using the shorthand “padding” property. I remember reading elsewhere that it is best practice to explicitly state all values in a property even if they are remaining a default so that the code is easier to read and maintain.

Not sure if this applies in this situation however, since technically writing out padding: 10px 20px; is exactly the same as writing padding: 10px 20px 10px 20px;.

I’ve seen arguments for and against using em/rem for padding, margins, etc. Is it mostly a preference? I’d point out that the examples here use px, but other exercises have done the same and then advocated for em/rem.

1 Like

The exercise mentions " A declaration that uses multiple properties as values is known as a shorthand property."

So according to this, is the given declation also a shorthand?

“border: 3px solid coral;”

Yes, this is.

p.content-header {
padding: 5px 10px 20px;
}
If the left and right sides of the content can be equal, the padding shorthand property allows for 3 values to be specified. The first value sets the padding-top value (5px ), the second value sets the padding-left and padding-right values (10px ), and the third value sets the padding-bottom value (20px ).

p.content-header {
padding: 5px 10px;
}
And finally, if the top and bottom sides can be equal, and the left and right sides can be equal, you can specify 2 values. The first value sets the padding-top and padding-bottom values (5px ), and the second value sets the padding-left and padding-right values (10px ).

Two questions…

  1. What does it mean if the sides can be equal? Does it mean if there is space for there to be an equal amount of padding either side?
  2. What about if the top and bottom sides can be equal (but not the left and right sides)? Could you specify 3 values for this? How would the computer know you are specifying values for (top and bottom, left, right) and not (top, left and right, bottom)?