LESS - Combinatorial Explosion



Description

The & can produce all the possible permutation of selectors in a list separated by commas.

Example

The following example demonstrates the use of & to produce all possible permutation of selectors in the LESS file −

<html>
   <head>
      <link rel = "stylesheet" href = "style.css" type = "text/css" />
      <title>Combinatorial Explosion</title>
   </head>

   <body>
      <p>This is first paragraph.</p>
      <p>This is second paragraph which is adjecent to first paragraph ( i.e. p + p ). This will be highlighted.</p>
      <div>
         This div is adjecent to second paragraph ( i.e. p + div ). This will be highlighted.
      </div>

      <p>This is third paragraph adjecent to div ( i.e. p + div ). This will be highlighted.</p>
      <i>This is italic. This will not be highlighted since there is no (p + i) in CSS</i>
      <div>This is second div</div>
      <div>This is div adjecent to second div ( i.e. div + div ). This will be highlighted</div>
   </body>
</html>

Next, create the style.less file.

style.less

p, div {
   color : red;
   font-family:Lucida Console;
   & + & {
      color : green;
      background-color: yellow;
      font-family: "Comic Sans MS";
   }
}

You can compile the style.less to style.css by using the following command −

lessc style.less style.css

Execute the above command; it will create the style.css file automatically with the following code −

style.css

p,
div {
   color: red;
   font-family: Lucida Console;
}

p + p,
p + div,
div + p,
div + div {
   color: green;
   background-color: yellow;
   font-family: "Comic Sans MS";
}

Output

Follow these steps to see how the above code works −

  • Save the above html code in the combinatorial_explosion.html file.

  • Open this HTML file in a browser, the following output will get displayed.

LESS Combinatorial Explosion
less_parent_selectors.htm
Advertisements