Question

I want to avoid duplication in my code. Is it possible to write something like this in LESS?

.print when (@media print = true) {
    background: @heading-background-color !important;
    -webkit-print-color-adjust: exact;
 }

  .header-month {
    .print
    background: @heading-background-color;
    font-weight: bold;
  }

Instead of:

@media print {
  .header-month {
    background: @heading-background-color !important;
    -webkit-print-color-adjust: exact;
  }
}

  .header-month {
    background: @heading-background-color;
    font-weight: bold;
  }

It doesn't look like an improvement here. But I'm working with multiple classes and need to do this for all of them.. So maybe an alternative if this is not possible?

Était-ce utile?

La solution

Less @media can be nested in a rule so you can define such .print mixin as:

.print() {
    @media print {
        background: @heading-background-color !important;
        -webkit-print-color-adjust: exact;
    }
}

// usage:
.header-month {
    .print();
    background: @heading-background-color;
    font-weight: bold;
}

Also see "Passing Rulesets to Mixins" for a more complex stuff.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top