Less.css pode ser compilado no lado do cliente ou no lado do servidor. Provavelmente, vou querer compilar less.css no lado do servidor.
Então, o que faz menos permitir que você escreva … menos?
Bem, variáveis para um. Vamos dar uma olhada:
@header-font: Georgia;
h1, h2, h3, h4 {
font-family: @header-font;
}
.large {
font-family: @header-font;
}
Um dos melhores usos para variáveis é usá-lo para definir cores. Você também pode realizar operações básicas.
Nesting
article.post {
p {
margin: 0 0 12px 0;
}
a {
color: red;
}
a:hover {
color: blue;
}
img {
float: left;
}
}
Posso fazer o acima e não preciso prefixar cada elemento / seletor com article.post
Mixins
.rounded_top {
-webkit-border-top-left-radius: 6px
-webkit-border-top-right-radius: 6px;
-moz-border-radius-topleft: 6px;
-moz-border-radius-top: 6px;
-border-top-left-radius: 6px;
-border-top-right-radius: 6px;
}
.tab {
background: #333;
color:#fff;
.rounded_top;
}
.submit {
.tab;
background: red;
}
Mixins permitem definir e reutilizar classes. Muito útil para coisas como botões, cantos arredondados, entalhes, etc.
Mixins Paramétricos
.rounded_top(@radius:6px) {
-webkit-border-top-left-radius: @radius;
-webkit-border-top-right-radius: @radius;
-moz-border-radius-topleft: @radius;
-moz-border-radius-top: @radius;
-border-top-left-radius: @radius;
-border-top-right-radius: @radius;
}
.tab {
background: #333;
color:#fff;
.rounded_top;
}
.submit {
.rounded_top(3px);
background: red;
}
Isso basicamente permite que você declare instruções semelhantes a funções. No exemplo acima, 6px é o valor padrão para o topo arredondado se nenhum for especificado. Caso contrário, leva o parâmetro para topo arredondado. Você pode ter vários parâmetros para definir mixins mais complexos.
Namespaces
Ao começar a trabalhar em um novo site (ou seja, para testes A / B), posso usar essa técnica e usá-la sem bagunçar nenhum outro estilo que já possuo ou queira adicionar no futuro.
#my_framework {
p {
margin: 12px 0;
}
a {
color:blue;
text-decoration:none;
}
.submit {
background: red;
color: white;
padding: 5px 12px;
}
}
.submit_button {
#my_framework > .submit;
}
Essa técnica também é boa para mudanças e modificações rápidas de temas. SE você desenvolver um tema como modelo, poderá incluí-los como pacotes no mesmo arquivo LESS e usar o que precisar:
#fw_1 {
p {
margin: 12px 0;
}
a {
color: blue;
text-decoration: none;
}
.submit {
background: red;
color: white;
padding: 5px 12px;
}
}
#fw_2 {
p {
margin: 8px 0;
}
a {
color: red;
text-decoration: underline;
}
.submit {
background: blue;
color: white;
padding: 8px 20px;
}
}
.submit_button {
#fw_2 > .submit;
}
Interpolação de String
Strings podem ser armazenados em variáveis e então usados dentro de valores de propriedade
@url: "http://mycompany.com/assets/";background-image: url("@{url}/sprite.png");
Isso pode ser muito útil se quisermos usar o url de um cdn e mantê-lo no CSS (onde ele pertence)