Check if parent has class using LESS

Adam Waite picture Adam Waite · Jan 16, 2013 · Viewed 20.3k times · Source

Example scenario: I would like to hide a sub-navigation menu if the user has javascript enabled so that it can be revealed on a click of a navigation link further up in the nav hierarchy. Modernizr adds a class 'js' to the html tag if javascript is enabled so I can use that for detection.

In SASS I can do something like this:

div.subnav{

   display: block;

   html.js & {
      display: none;
   }

}

Can this be done using LESS? Can I target a parent from within another rule?

Answer

zzzzBov picture zzzzBov · Jan 16, 2013

Can this be done using LESS?

Yes.

The code you provided works in LESS. The & combinator works the same.

In the end, the selectors generated for:

div.subnav {
    ...
    html.js & {
        ...
    }
}

will be:

div.subnav {
    ...
}

html.js div.subnav {
    ...
}