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) Advanced Sass Concepts Interpolating and if/else

Christian Edmonds
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Christian Edmonds
Front End Web Development Techdegree Graduate 21,115 Points

What's wrong with my code?

error says "@else must come after @if"

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) {
  .#{$make} {
    border: 1px solid black;
    background-image: url("#{$color}.png");
  }
}

$time : morning;

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

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there, Christian! Here's the short answer: your curly braces are incorrect. Every if/else if/else should have a set of curly braces. Inside of those should be rules which each have their own curly braces. Take a look:

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

I've tried to format this so it will be crystal clear. Take the first if statement of your code for example. You start the @else if before you've managed to add a closed curly brace to the @if statement.

Hope this helps! :sparkles:

:bulb: Tip: set up the structure of your if/else if/else before adding your rules. Then go back and add the rules between those curly braces. This will help ensure that everything is closed and opened appropriately.