Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

CSS Sass Basics (retired) Advanced Sass Concepts Interpolating and if/else

Michael Lawinger
Michael Lawinger
33,581 Points

Make A Class With Mixin

The Question is: The mixin should use the value in $make as the name of a new class. The class should have a 1px solid black border.

I'm confused at this point I don't remember it even being covered in the video.

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>
  <div class="wrap">
    <h1>Hampton's Blog</h1>
    <ul id="menu">
      <li><a href="#">Home</a></li>
      <li><a href="#">About Hampton</a></li>
      <li><a href="#">Hampton's Work</a></li>
    </ul>
    <div class="entry">
      <h1>Delicious Food in SF</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 Mr. Chow's, Live Sushi and Piccino. 
          <a href="/info.html">Read More</a>
        </p>
      </div>
    </div>
    <div class="entry">
      <h1>Great Music</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. 
            <a href="/info.html">Read More</a>
          </p>
        </div>
    </div>
  </div>
</body>
</html>
style.scss
/* Write your SCSS code below. */

@mixin cars($make, $color) {
@include make {border: 1px solid black}
}

3 Answers

You'll need to use interpolation, as the video covered.

@mixin cars($make, $color) {
  .#{$make} {
    border: 1px solid black;
  }
}

I put a period in front of the #{$make} because the period represents that it's a class. For example, if the variable $make is "tesla", #{$make} will be replaced with tesla in the CSS file.

I hope this helps! :grin:

~Alex

Michael Lawinger
Michael Lawinger
33,581 Points

Awesome. Makes sense! I'm having a hard time with another one which says: Underneath the previous code, store the value morning in a variable named $time. Then write an if/else directive that will color all <a> tags. If the variable $time is equal to morning, the color should be red. Otherwise, if the variable is afternoon, the color should be blue. Finally, if the variable is set to anything else, the color should be gray.

This is my code now:

@mixin cars($make, $color) {
  .#{$make} {
    border: 1px solid black;
    background-image: url("#{$color}.png");
  }
  a {
  $time: morning;
  if morning (color: red);
  if else afternoon (color: blue);
  else (color: gray);
  }
}
Michael Lawinger
Michael Lawinger
33,581 Points

I changed it a little and I think I'm a lot closer but it's saying: The @if statement needs to evaluate the value of the $time variable.

 a {
  @if == $time: morning {
  color: red;
  }
  @if else == $time === afternoon {
  color: blue;
  }
  @else {
  color: blue;
  }