Less Preprocesor Návod
Selektory
Když píšeme kaskádové styly pomocí preprocesoru LESS, tak narozdíl od normálního CSS můžeme do sebe různě vnořovat selektory a kód se nám potom mnohem lépe píše a čte. V této části se dozvíte co všechno můžete při psaní selektorů využít.
Vnořování selektorů
V LESS kódu můžeme do selektorů vnořovat další selektory, jak ukazuje následující ukázka. V této ukázce bude mít každý element h1, který se nachází uvnitř elementu s třídou introduction červenou barvu.
.introduction {
h1 { // v CSS bychom napsali: .introduction h1
color: red;
}
}
.introduction h1 {
color: red;
}
Používání @media a @supports uvnitř selektorů
V LESS můžeme psát @media a @supports dovnitř selektorů. V CSS bychom museli @media a @supports psát mimo selektory a do nich selektory psát znova. Když používáme LESS a napíšeme @media nebo @supports dovnitř selektoru, nemusíme psát selektor znova a jen jednoduše napíšeme vlastnosti, které chceme použít.
.component {
width: 30px;
@media (min-width: 600px) {
width: 60px;
}
}
.component {
width: 30px;
}
@media (min-width: 600px) {
.component {
width: 60px;
}
}
V LESS do sebe můžeme také navzájem vnořovat @media nebo @supports. Při kompilaci se potom vytvoří @media nebo @supports se dvěmi nebo více podmínkami.
.component {
width: 30px;
@media (min-width: 600px) {
width: 60px;
@media (min-resolution: 192dpi) {
background-image: url("/img/retina2x.png");
}
}
}
.component {
width: 30px;
}
@media (min-width: 600px) {
.component {
width: 60px;
}
}
@media (min-width: 600px) and (min-resolution: 192dpi) {
.component {
background-image: url("/img/retina2x.png");
}
}
Odkazování na předchozí selektor při vnořování
Vnořování selektorů nemusíme používat jen pro vytváření selektorů, které jsou zaměřené na elementy uvnitř nějakého jiného elementu. Pokud použijeme při vnořování znak & tak se vytvoří selektor, který bude obsahovat text předešlého selektoru a nějaký vlastní. Nejlépe to pochopíte na následující ukázce.
.menu {
width: 200px;
&__item { // v CSS bychom napsali: .menu__item
background-color: #26c026;
&:hover { // v CSS bychom napsali: .menu__item:hover
background-color: #1f981f;
}
}
}
.menu {
width: 200px;
}
.menu__item {
background-color: #26c026;
}
.menu__item:hover {
background-color: #1f981f;
}
Znak & se také může hodit pro vygenerování různých kombinací selektorů oddělěných čárkou. Tuto operaci ukazuje následující ukázka kódu.
p, a, ul, li {
border-top: 2px dotted #366366;
& + & {
border-top: none;
}
}
p, a, ul, li {
border-top: 2px dotted #366366;
}
p + p, p + a, p + ul, p + li,
a + p, a + a, a + ul, a + li,
ul + p, ul + a, ul + ul, ul + li,
li + p, li + a, li + ul, li + li {
border-top: none;
}
Selektory s podmínkami
K selektorům si můžeme přidat podmínku, která musí platit aby se selektor aplikoval. Podmínku vytvoříme tak, že za selektor připíšeme slovo "when" a závorky s výrazem, který musí platit aby se selektor použil.
@nastavit-bilou-barvu: true;
// následující selektor se použije jen když bude platit podmínka
button when (@nastavit-bilou-barvu = true) {
color: white;
}
button {
color: white;
}