How to use before, after and hover in Scss

Scss offers a much cleaner syntax than regular CSS when it comes to complex styling, which means we can call HTML pseudo-elements such as before and after in a more readable and efficient way. The same applies to other pseudo-classes such as hover.

 

In this tutorial, we will cover how to use before and after in Scss and how we can apply the same principle to other CSS selectors.

 

::before pseudo-class

To access the ::before pseudo class of an element in Scss we can nest &:before inside an element class selector. In the below example we are getting ::before of elements with the class .example.

 

.example {
  &:before {
    content: '';
  }
}

 

::after pseudo-class

::after can be accessed in exactly the same way. As with ::before remember that you have to set the content property to at least an empty string for the pseudo-class to work.

 

.example {
  &:before {
    content: '';
  }
}

 

::hover pseudo-class

The same principle applies to the ::hover selector, let's say we wanted to change the color of all anchor elements on hover. We could do something like this in Scss:

 

a {
  &:hover {
    color: orange;
  }
}

 

Other Examples

Basically we can use a nested & selector in Scss to access any pseudo-class available in regular CSS. Another example might be if we wanted to customise the scrollbar of an element that has a fixed height and its overflow set to scroll.

 

nav {
  height: 300px;
  width: 300px;
  overflow-y: scroll;

  &::-webkit-scrollbar {
  width: 0.5em;
  height: 0.5em;
  background: grey;
  }

  &::-webkit-scrollbar-thumb {
  background-color: blue;
  border-radius: 3px;
  }
}

 

Conclusion

You now know how to access the before and after pseudo-classes using the correct Scss syntax and that the same principle can easily be applied to any pseudo-class.