CSS CSS Layout The CSS Box Model Padding, Borders, and Margins

Isaiah Narraway
Isaiah Narraway
3,312 Points

How do i seperate an element from it’s predecessor?

The question asks for me to seperate the footer element from its predecessor, how do i do so?

/* Complete the challenge by writing CSS below */
header {
  padding-top: 20px;
  padding-bottom: 25px;
  border-bottom: solid;
  border-color: orange;
  border-width: 10px;
section.intro {
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 1rem;
  padding-right: 1rem;

.footer {
  margin-top: 50px;
<!DOCTYPE html>
<html lang="en">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Developer Diane's blog</title>
  <link rel="stylesheet" href="page.css">
  <link rel="stylesheet" href="style.css">
    <div id="logo">Developer Diane’s Blog</div>
    <section class="intro">
      <h1>The verdict is in. CSS Layout is great!</h1>
      <p>I’ve been working with CSS for a while now, and I have to say, it’s pretty awesome. I love being able to separate content from presentation, and to keep all my styles in an external stylesheet.</p>
      <p>I’ve had a pretty good grasp on the basics for a while now, but I needed to learn more about how to control layout with my CSS. Understanding CSS layout meant first exploring the parts of the CSS box model.</p>
    <section class="featured">
      <h2>The CSS Box Model</h2>
      <p>There are lots of great resources online to help you learn the CSS Box Model. I like the CSS Tricks article <a href="https://css-tricks.com/the-css-box-model/" target="_blank">The CSS Box Model</a> by Chris Coyier. To quote the author:</p>
      <blockquote>At the risk of over-repeating myself: <strong>every element in web design is a rectangular box.</strong></blockquote>
      <p>That’s right! Every HTML element is considered by the browser to be a rectangular box.</p>
      <p>The CSS Box Model consists of four properties: content, padding, border, and margin. I've included a graphic from Coyier’s article to illustrate this principle.</p>
      <p class="clear">It’s pretty easy to understand the Content portion of the box model. The content is whatever your HTML consists of. It could be a paragraph full of text, or a bulleted list, or an image.</p>
      <p>Beginning developers may have some trouble keeping the other parts of the box model straight, so let’s examine them one by one.</p>
    <footer>©2020 Developer Diane.</footer>

1 Answer

Peter Vann
Peter Vann
36,049 Points

Hi Isaiah!

They give you the answer in the second sentence:

"Target the footer element and apply a top margin of 50 pixels."

And, of course, "predecessor" just means the immediate element directly above the footer, so applying a top margin to the footer achieves the requested separation.

Keep in mind, footer is an element, not a class, so you don't target it with a dot (.).

Also, your life would be much easier (far less typing) if you chose to use shorthand syntax more.

This passes all five tasks:

/* Complete the challenge by writing CSS below */
header {
  padding-top: 20px;
  padding-bottom: 25px;
  border-bottom: 10px solid orange;
section.intro {
  padding: 1rem;

footer {
  margin-top: 50px;

.featured {
  border-top: 2px dotted lightgrey;

Also, although the order doesn't matter when using shorthand syntax on properties such as borders, it is customary to order the values in this order: size(px) style(solid/dotted) color(orange).

I hope that helps.

Stay safe and happy coding!