Why i can't nest like this elements in scss?

pen: [ http://codepen.io/ustvarno/pen/oLBQzx ]

this doesn't work: 

button {
  .started {
    background-color: green;
  }
}

but this works:
  button {
    }
  .started {
    background-color: green;
  }

How to nest like this and make tidy this?

Wrong syntax.

try:

button {
  &.started {
    background-color: green;
  }
}
1 Like

works,ty. i was thinking bout that, that it works like normal elements tag, for instance
div {
width: 30px;
height: 30px;
background: green;

  button {
    background-color: yellow;
  }
  
}

In that case you’re right, but in your example with the div, the button is INSIDE the div. Like this:

<div><button>Hello</button></div>

But in the example with the button and the class of started, the button HAS the class. so you can do one of this two ways:

 <button class="started">Hello</button>
button.started { 
   background: green; 
}
button {
   &.started { 
      background: green; 
   }
}
1 Like

Found this very nice tut: Nesting in Sass and Less | @mdo

Un-nesting with &
The un-nesting example is perhaps the most confusing way to nest CSS.

.child {
.parent & { }
}
When used at the end of a nested selector, the & puts everything to the left of it before the parent selector. So the above example compiles to .parent .child { }. This is confusing in a few ways:

The & puts that selector at the beginning of the top-most parent.
It’s the opposite of how regular nesting works.
It clouds your vision of the compiled CSS.
Rather than go that route, try something like this:

.child { }
.child-modifier { }
The result is a component-based approach with lower specificity and clearer insight into what your compiled CSS will be.