Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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

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?

style.css
/* 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;
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <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">
</head>
<body>
  <header>
    <div id="logo">Developer Diane’s Blog</div>
  </header>
  <article>
    <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>
    <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>
    </section>
    <footer>©2020 Developer Diane.</footer>
</body>
</html>

1 Answer

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!