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 Sass Basics (retired) Getting Started with Sass Advanced Nesting

Michael Lawinger
Michael Lawinger
33,581 Points

Confusing SASS Nesting

This was the question: We want to add an exception for <a> tags that are in the <div> with a class of .footer: those links should be purple. Use the post-selector ampersand to achieve this. My code is below, I tried many combinations but I'm lost and deleted what I had.

index.html
<!DOCTYPE html>
<html>
<head>
  <title>Sass Basics - Code Challenge</title>
  <link rel="stylesheet" type="text/css" href="page-style.css">
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <h1>Hampton's Blog</h1>
  <div class="entry">
    <h1><a href="#">Delicious Food in SF</a></h1>
    <div class="content">
      <p>
        You know what my favorite restaurant in San Francisco is? The answer is that there are so many great restaurants that I couldn't choose one. But honorable mentions include <a href="#">Mr. Chow's</a>, <a href="#">Live Sushi</a> and <a href="#">Piccino</a>. 
        <span class="link"><a href="/info.html">Read More</a></span>
      </p>
    </div>
  </div>
  <div class="entry">
    <h1><a href="#">Great Music</a></h1>
    <div class="content">
      <p>
        Here are some of my favorite bands from years past and present: Belle and Sebastian, Pixies, and Daft Punk. Listening to music allows me to focus when I'm programming. 
        <span class="link"><a href="/info.html">Read More</a></span>
      </p>
    </div>
  </div>
  <div class="footer">
    <p>
      Thanks for reading my blog!  Be sure to check out my <a href="#">other articles</a>.
    </p>
  </div>
</body>
</html>
style.scss
/* Write your SCSS code below. */
p {
  a {color: red;}
  >a {color:blue;
    &:hover {opacity:0.5;}
  }
}

2 Answers

Michael, Chalk this one up to an annoying question. I just went through the challenge, and if you make it:

p {
  a {
    color: red;

    div.footer & {
      color: purple;
    }
  }
  > a {
    color:blue;
    &:hover {
      opacity:0.5;
    }
  }
}

Literally the only difference is adding div to the footer class, and it said I got it right. Your and my code would be fine in a real-life context, but the question required that higher degree of specificity. [eyeroll]

Hope that gets you through; upvote this if so. Cheers.

Michael Lawinger
Michael Lawinger
33,581 Points

Cool, thank you, I'm just learning Sass and the nesting started and the wording of the question was confusing me. Thanks!

Thanks! That part of the video was certainly weaker than the rest; all i needed to do was add the .div.

Hey there, The & symbol will substitute in whatever its immediate parent (or ancestry, if it has multiple parents) is. So if you write this...

p {
  a {
    color: red;

    .footer & {
      color: purple;
    }
  }
  > a {
    color:blue;
    &:hover {
      opacity:0.5;
    }
  }
}

...then SCSS will replace the & with p a, since that is what the parent/ancestry of it is. The compiled CSS should then return .footer p a {, etc. Make sense? Let me know if that gives you the answer you're looking for. Cheers!

Michael Lawinger
Michael Lawinger
33,581 Points

I tried that but with the code you had it's saying...

Please use the ampersand selector following the selector for the .footer div.