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

Can any one help with this question??

We want to add a style to our previous Sass code declaring that on hover, all direct <a> children have an opacity of 0.5. Use the ampersand selector to achieve this, rather than repeating the > a direct child selector.

p { >a {color: blue; }
{ &:hover {opacity: .5; } } }

It keeps telling me to set the opacity. What gives???

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;   
    }  
}
p {
    >a {
        color:  blue; 
    }  
    {   
    &:hover {
        opacity: .5;  
    } 
} 
}

4 Answers

/* Write your SCSS code below. */
p {
    a {
        color: red;
        div.footer & {
            color: purple;
        }        
    }
    > a {
        color: blue;
        &:hover {
            opacity: 0.5;
        }
    }
}

So with this one, you're trying to add a prefix to the selector. It's kind of like adding div.footer to the very beginning of that one selection rule to make it div.footer p a.

If the ampersand (&) is on the left side, you're extending the current selector. If it's on the right side, you're prefixing the current selector.

if that doesn't make sense, let me know!

Yo! I've had a look at your code and sorted your formatting. Hopefully you can now see you have a few too many curly braces knocking around ;)

To avoid spoiling the fun, I won't give it away just yet. Have a play with the brackets first and see if you can crack it! You might also need to do some re-nesting.

If you get stuck, I'll be happy to reveal the answer, but it's always best to have a crack first!

Thanks, Tom. But I have solved that one. Now I am stuck with the fourth one. Could you look at that, please?

Can you paste in the code you're trying?

Tom, this is what FINALLY worked for the third question.

/p { > a { color: blue;
&:hover { opacity: 0.5; } }
}

Am attempting fourth one now.