Less.js: рд╕рдореВрд╣ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рд╕рд┐рддре░ 2012  ┬╖  64рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: less/less.js

рдЬрдмрдХрд┐ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реА рдмрдмрд▓рд┐рдВрдЧ рдмрдврд╝рд┐рдпрд╛ рд╣реИ:

header {
    color: green;

    <strong i="6">@media</strong> only screen (max-width: 500px) { color: red; }
}

footer {
    color: green;

    <strong i="7">@media</strong> only screen (max-width: 500px) { color: red; }
}

рдХрдо рдХрд╛рдлреА рдлреВрд▓рд╛ рд╣реБрдЖ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рд░ рдмрд╛рд░ рдХрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореАрдбрд┐рдпрд╛рдХреНрд╡реЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ:

header {
  color: green;
}
<strong i="11">@media</strong> only screen (max-width: 500px) {
  header {
    color: red;
  }
}
footer {
  color: green;
}
<strong i="12">@media</strong> only screen (max-width: 500px) {
  footer {
    color: red;
  }
}

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ:

header {
  color: green;
}
footer {
  color: green;
}

<strong i="16">@media</strong> only screen (max-width: 500px) {
  header {
    color: red;
  }
  footer {
    color: red;
  }
}
feature request medium priority up-for-grabs

рд╕рднреА 64 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХрдердиреЛрдВ рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ рдЕрд░реНрде рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдЖрдк рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрд░реНрде рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░рд░реНрдердХ рдЯреИрдЧ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

body {
    background: white;
}

body {
    padding: 0;
    margin: 0;
}

рдХреЛ рдзреНрд╡рд╕реНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

body {
    background: white;
    padding: 0;
    margin: 0;
}

рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдЪрдпрдирдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддрддреНрд╡ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдкрд░рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЙрдирдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рдХреА рд╕реАрдПрд╕рдПрд╕ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреБрджрдмреБрджрд╛рдП рдЧрдП рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рдпрд╣ рдареАрдХ рдЙрд╕реА рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪрдпрдирдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рд╢реНрди рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдирд┐рд░реНрдорд╛рддрд╛ рдЫреЛрдЯрд╛ рд╕реАрдПрд╕рдПрд╕ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛ред

рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЕрдВрджрд░ рдЪрдпрдирдХрд░реНрддрд╛ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдирд┐рдпрдо рдХреНрдпрд╛ рд╣реИрдВ? рдХрд░реЛ
рдкреНрд░рд╢реНрди рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдЖрджреЗрд╢ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рдХреЛрдИ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдРрдирдХ?

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╣рд╛рдБред рдореАрдбрд┐рдпрд╛ рдЪрдпрдирдХрд░реНрддрд╛ IF рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреА рддрд░рд╣ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╢реИрд▓реА рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рд▓рдкреЗрдЯреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдХреНрд╡реЗрд░реА рдХреА рд╢рд░реНрдд рдкреВрд░реА рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдХрдо рд╣реИ рддреЛ рдХреНрд╡реЗрд░реА рдХреЗ рднреАрддрд░ рдирд┐рдпрдо рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдореМрдЬреВрджрд╛ рдирд┐рдпрдореЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рддреЛ рдПрдХ рд╣реА рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдорд╛рди рдкреНрд░рд╢реНрди рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рднреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рдЬрдм рддрдХ рдХреНрд╡реЗрд░реА рд╡рд╣реА рд╣реИред

рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕реЗ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ

https://developer.mozilla.org/en-US/docs/CSS/Media_queries

рдореЗрд░рд╛ рдорддрд▓рдм рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ .. div рд▓рд╛рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ (рджреЛрдиреЛрдВ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП) рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЕрд░реНрде рдмрджрд▓ рджреЗрдЧрд╛

<strong i="6">@media</strong> screen {
    div {
        background-color: green;
    }
}

div {
     background-color: red;
}

<strong i="7">@media</strong> screen {
    div.pink {
        background-color: pink;
    }
}

рдЗрд╕реЗ рдХреЗрд╡рд▓ рддрднреА рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдирд┐рдпрдо рд╕реАрдзреЗ рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВред

рдЬреЛ рд╡реЗ @Soviut рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ IMO рдореЗрдВ рд╕реАрдорд┐рдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдмреБрджрдмреБрджрд╛рдП рдЧрдП рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛? рдпрд╛рдж рд░рдЦреЗрдВ, рдмреБрджрдмреБрджрд╛рддреЗ рд╣реБрдП рдкреНрд░рд╢реНрди рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдХрд╛ рдПрдХ рд╕рд╛ рд╣реИрдВ; рдЖрдк рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдЕрдВрджрд░ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реА рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рддреЛ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдордп рдЖрдк рдПрдХ рдмреБрджрдмреБрджрд╛рддреА рдХреНрд╡реЗрд░реА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП рдЙрд╕реЗ рд╕рдорд╛рди рдмреБрджрдмреБрджрд╛рддреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдореВрд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╡реЗ рдЖрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рджреЛ рдмреБрджрдмреБрджрд╛рддреЗ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ .. рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЙрдиреНрд╣реЗрдВ рдХрдо рдореЗрдВ рдЕрд▓рдЧ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП?

рд░реЗрдЯрд┐рдирд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рдЬрдЯрд┐рд▓ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реА рдХреЛ рдПрдХ рдорд┐рдХреНрд╕рд┐рди рдХреЗ рдЕрдВрджрд░ рд▓рдкреЗрдЯрд╛ рд╣реИ рдФрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдорд┐рдХреНрд╕рд┐рди рдмрдирд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рднреА рдЬрдЧрд╣ рд╣реИ ... рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рд░рдЦрд░рдЦрд╛рд╡ рдпреЛрдЧреНрдп рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдорд┐рдХреНрд╕рд┐рди рд╣реИ:

.sprite(<strong i="7">@spritePath</strong>, <strong i="8">@hdpiPath</strong>, <strong i="9">@x</strong>, <strong i="10">@y</strong>, <strong i="11">@size</strong>: auto) {
    background-image: url(@spritePath);  
    background-repeat: no-repeat;
    background-position: -1 * <strong i="12">@x</strong> -1 * @y; // Negativize the value
    .background-size(@size);
    <strong i="13">@media</strong> <strong i="14">@mediaRetina</strong> {
        background-image: url(@hdpiPath);
    }
}

рдЬрд╣рд╛рдВ @mediaRetina рд╣реИ:

<strong i="19">@mediaRetina</strong>: ~"only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 4/3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx)";

рдлрд┐рд░ рдиреАрдЪреЗ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рддрддреНрд╡ рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдорд┐рд╢реНрд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ:

#sprite
{
    .header-logo()
    {
        .sprite(<strong i="23">@globalSpritePath</strong>, <strong i="24">@global2XSpritePath</strong>, 22px, 0, 384px 288px);
        width: 94px;
        height: 59px;
    }
}

рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп LESS рдлрд╝рд╛рдЗрд▓ (рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

h1 {
    width: 94px;
    height: 59px;

    a {
        #sprite > .header-logo();
    }

}

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрдкрдиреНрди рд╕реАрдПрд╕рдПрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

h1 a {
  background-image: url("/images/sprite-global.png");
  background-repeat: no-repeat;
  background-position: -22px 0;
  -webkit-background-size: 384px 288px;
  -moz-background-size: 384px 288px;
  -o-background-size: 384px 288px;
  background-size: 384px 288px;
  width: 94px;
  height: 59px;
}
<strong i="31">@media</strong> only screen and (-webkit-min-device-pixel-ratio: 1.3), 
       only screen and (min--moz-device-pixel-ratio: 1.3), 
       only screen and (-o-min-device-pixel-ratio: 4/3), 
       only screen and (min-device-pixel-ratio: 1.3), 
       only screen and (min-resolution: 124dpi), 
       only screen and (min-resolution: 1.3dppx) {
  h1 a {
    background-image: url("/images/[email protected]");
  }
}

рдЕрдм рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╕рдореВрд╣реАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛, рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рдЬрди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЯрд┐рдирд╛ рд╢реИрд▓реА рдХреЛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд LESS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЫреЛрдЯреА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝реА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рд╕рдореВрд╣рдмрджреНрдз рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд░рдЦрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ (рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ) рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╕рд╛рдЗрдЯ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд╕рдЯреАрдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЛ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд┐рдП рдмрд┐рдирд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ "рд╕реЗрдХреНрд╢рди" (рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрд╕рдореЗрдВ рд░рдЦреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡реЗ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реЛрдВред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЖрдо рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ "рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдпрд╛ "рд╣реЗрдб" рдЕрдиреБрднрд╛рдЧ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдЙрдирдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдХрдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

<strong i="39">@media</strong> { // retina query
    @renderSection("retina")
}

// in another file
h1 {
    <strong i="40">@section</strong> retina {
        // retina styles
    }
}

рд╡рд░реНрддрдорд╛рди рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдкрд░ @section рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ, рдореЗрд░рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдорд┐рдХреНрд╕рд┐рди рдмрди рдЬрд╛рдПрдЧрд╛:

.sprite(<strong i="46">@spritePath</strong>, <strong i="47">@hdpiPath</strong>, <strong i="48">@x</strong>, <strong i="49">@y</strong>, <strong i="50">@size</strong>: auto) {
    background-image: url(@spritePath);  
    background-repeat: no-repeat;
    background-position: -1 * <strong i="51">@x</strong> -1 * @y; // Negativize the value
    .background-size(@size);
    <strong i="52">@section</strong> retina {
        background-image: url(@hdpiPath);
    }
}

рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ (рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕реЗ ASP.NET рд░реЗрдЬрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╕рдВрдж рд╣реИред

рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг .. рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ .. рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@media-section

(рдпрд╛ рдореАрдбрд┐рдпрд╛-рд╕рдореВрд╣) рдЬреЛ рддрдм рдореАрдбрд┐рдпрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдмрддрд╛рдПрдЧреА (рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реА рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рд░рд╣реА рд╣реИ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдирд┐рдпрдореЛрдВ рдХреЛ рд╡рд╣рд╛рдВ рдЦреАрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рдЬрд╣рд╛рдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) .. рд╢рд╛рдпрдж рдпрд╣реА рд╣реИ рдЖрдкрдХрд╛ рдорддрд▓рдм рдХреНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ (рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ)

+1 @ рдореАрдбрд┐рдпрд╛-рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП

+1 @ рдореАрдбрд┐рдпрд╛-рд╕рдореВрд╣

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд╣реА/рдЧрд▓рдд рд╕рдореВрд╣рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛред

рд╣рдореНрдо, рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдИ рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдЪрдпрдирд╛рддреНрдордХ рд╕рдореВрд╣рди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХреЗ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрди рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛрдВ, рдЗрд╕рд▓рд┐рдП рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдХрд▓реНрдк рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЪрдпрдирд╛рддреНрдордХ рд╕рдореВрд╣рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдж рдореЗрдВ рдирдП рдЦреЛрдЬрд╢рдмреНрдж рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдореВрд╣реАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП +1ред

рд╣рд╛рдБ.. рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ @import рд╕рд╛рде рджреЗрдЦрд╛ рдХрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдирд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдерд╛ рдФрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдирд╛ рдХрдо рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИред

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреБрд░рдВрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдХрднреА рднреА рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣реИрд▓реЛ, рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдЬрдм рдореБрдЭреЗ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдореВрд╣рдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдРрдк рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рддреИрдпрд╛рд░ рдРрдк рдирд╣реАрдВ рд╣реИред рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╢реЛрдз рдХреА рддрд░рд╣ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд┐рдЪрд╛рд░ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдмрдЧ рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ) рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреА рдЖрдЦрд┐рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреНрд╡рд┐рдЯрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдпрд╣ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдирд┐рдпрдореЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ) рдореБрдЭреЗ рдмрддрд╛рдПрдВ;)

http://mqhelper.nokturnalapp.com

рдирдорд╕реНрдХрд╛рд░!

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдХрдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдЗрд╕ рддрд░рд╣, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА @mqs рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@AoDev mqhelper рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдХрджрдо рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд▓рд╛рдЗрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрдкрдХреЗ рдбреЗрдореЛ рдореЗрдВ рдлреНрд░рдВрдЯ-рдПрдВрдб рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓реА рдореВрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдРрдк рдХрд╛ рд▓рдХреНрд╖реНрдп рдХреБрдЫ "рдЕрд╕рд▓реА рдЯреВрд▓" рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдмрдирдирд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕реЛрдЪрддреЗ рд╣реБрдП рджреЗрдЦрд╛ рдХрд┐ рдХреНрдпрд╛ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдореВрд╣рдмрджреНрдз рдХрд░рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдб рдХрдо рдХреЗ рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдпрджрд┐ рд╡реЗ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдореЙрдбреНрдпреВрд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ :)

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдХрд╛рдо рд╣реИ, рдзрдиреНрдпрд╡рд╛рджред

@ рд╕реЛрд╡рд┐рдпрдд @lukeapage рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреБрдирд┐рдВрджрд╛ рд╕рдореВрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдХреИрд╕реНрдХреЗрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рд╕рднреА рдпрд╛ рдХреБрдЫ рднреА рдХрд╣рд░ рдмрд░рдкрд╛рддрд╛ рд╣реИред рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд╢рд╛рдпрдж рд╕рдЪрдореБрдЪ рд╕рдореВрд╣ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕реЗ рдпрд╣ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:

<strong i="8">@tablet</strong>: (max-width: 979px);

.a {
  color: yellow;
  <strong i="9">@media</strong> <strong i="10">@tablet</strong> group {
    color: red;
  }
}
.b {
  background: black;
  <strong i="11">@media</strong> <strong i="12">@tablet</strong> group {
    background: white;
  }
}

//output
.a { color: yellow; }
.b { background: black; }
<strong i="13">@media</strong> (max-width: 979px) {
  .a { color: red; }
  .b { background: white; }
}

рд╣реИрд▓реЛ, рдореАрдбрд┐рдпрд╛-рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдореВрд╣реАрдХрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╣реЛрдЧрд╛ред рдЗрд╕ рдмреАрдЪ рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧреБрдгреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧрд╛рдореА :extend рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

// Define the media queries
<strong i="7">@step1</strong>: ~"only screen and (max-width: 960px)";
<strong i="8">@step2</strong>: ~"only screen and (min-width: 961px)";

// Default empty mixins
.step1() {}
.step2() {}

// Custom styles
.test { color: blue; }

// Change the style in the media queries
.step1() {
  .test { color: red; }
}

.step2() {
  .test { color: green; }
}

// Finally render the media queries
<strong i="9">@media</strong> <strong i="10">@step1</strong> { .step1(); }
<strong i="11">@media</strong> <strong i="12">@step2</strong> { .step2(); }

@AoDev рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ @AoDev рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЯреВрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛

@kamranayub рдиреЗ рдареАрдХ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реВрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред @DesignByOnyx , рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб @AoDev рдХреЗ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬреИрд╕реЗ рдХрд╛рдорд░рд╛рдирд╛рдпреБрдм рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдмрдбрд╝реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдХрдИ рдХрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рд╣реЛрддрд╛ рд╣реИред

.footer ul {

  margin: 10px;

  <strong i="9">@media</strong> @layout-tablet, @layout-full {
    font-size: 13px;
    font-weight: bold;
  }
  <strong i="10">@media</strong> @layout-mobile {
    font-size: 10px;
    padding-left: 10px;
  }

  li {

    background: black;
    color: white;
    padding: 10px;

    <strong i="11">@media</strong> @layout-tablet, @layout-full { .border-radius(@radius) }
    <strong i="12">@media</strong> @layout-mobile { .border-radius(@radius-mobile) }   
  }

}

рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдХрдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ
рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рдеред
2 рдЬреБрд▓рд╛рдИ 2013 рдХреЛ рд░рд╛рдд 9:19 рдмрдЬреЗ, "рдкреА рдореИрдХреЛрдо" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@kamranayub https://github.com/kamranayub рдиреЗ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдпрд╛
рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореИрдВ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реВрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдХреБрдЫ рд░реВрдк рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛
рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗред @DesignByOnyx https://github.com/DesignByOnyx ,
рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб @A oDevhttps://github.com/AoDev рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдЙрдкрдХрд░рдгред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬреИрд╕реЗ рдХрд╛рдорд░рд╛рдирд╛рдпреБрдм рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред
рдмрдбрд╝реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдХрдИ рдХрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рд╣реЛрддрд╛ рд╣реИред

рдлреБрдЯрд░ рдЙрд▓ {

рдорд╛рд░реНрдЬрд┐рди: 10px;

@ рдореАрдбрд┐рдпрд╛ @ рд▓реЗрдЖрдЙрдЯ-рдЯреИрдмрд▓реЗрдЯ, @ рд▓реЗрдЖрдЙрдЯ-рдкреВрд░реНрдг {
рдлрд╝реЙрдиреНрдЯ-рдЖрдХрд╛рд░: 13px;
рдлреЛрдВрдЯ рдХреА рдореЛрдЯрд╛рдИ: рдмреЛрд▓реНрдб;
}
@ рдореАрдбрд┐рдпрд╛ @ рд▓реЗрдЖрдЙрдЯ-рдореЛрдмрд╛рдЗрд▓ {
рдлрд╝реЙрдиреНрдЯ-рдЖрдХрд╛рд░: 10px;
рдкреИрдбрд┐рдВрдЧ-рдмрд╛рдПрдВ: 10px;
}

рд▓реА {

background: black;
color: white;
padding: 10px;

<strong i="34">@media</strong> @layout-tablet, @layout-full { .border-radius(@radius) }
<strong i="35">@media</strong> @layout-mobile { .border-radius(@radius-mobile) }

}
}

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHub рдкрд░ рджреЗрдЦреЗрдВhttps://github.com/less/less.js/issues/950#issuecomment -20369038
.

рдХреНрдпрд╛ LESS рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж @AoDev рдХреЗ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд▓реЙрдЬрд┐рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ? рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдЬрд╣рд╛рдВ рд╡рд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ LESS рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж @AoDev рдХреЗ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд▓реЙрдЬрд┐рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ? рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдЬрд╣рд╛рдВ рд╡рд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ рдореИрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрд░рд┐рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдореИрдВ рдПрдХ grunt.js рдореЙрдбреНрдпреВрд▓ рдореЗрдВ @AoDev рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ LESS рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдпрд╣ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рдкреВрд░реНрд╡-рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреИрдирд╛рддреА рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдлреНрд▓рд╛рдИ рдкрд░ рдирд╣реАрдВ)

рдХрдЪреНрдЪреЗ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░рд┐рдо рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдЧрдВрднреАрд░ рдХрд╛рд░реНрдп рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ @media рдореИрдЬрд┐рдХ LESS рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рддрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдПрдХ рд╕рдореВрд╣реАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

рдлрд┐рд░ рд╕реЗ, рдЧреНрд░рдВрдЯ рдХрд╛рд░реНрдп рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдкрдиреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдлреНрд▓рд╛рдИ рдкрд░ рдореЛрдмрд╛рдЗрд▓ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рд▓реЛрдб рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рд╣реИ - рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореАрдбрд┐рдпрд╛-рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдЯреВрд▓ рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реЛ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдмрд┐рд▓реНрдХреБрд▓ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реАрдПрд╕рдПрд╕рдУ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдПрдХрдорд╛рддреНрд░ рд╕реАрдПрд╕рдПрд╕ рдкреБрдирд░реНрд▓реЗрдЦрдХ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░рдВрдЯ рдХрд╛рд░реНрдп рднреА рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдбреАрдУрдПрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рдорд╛рди рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХрд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рд╣реИред

Mqhelper рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рджреЗрддрд╛ рд╣реИ рдЧреАрдердм рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдкреЗрдЬред рдЕрд▓рдЧ рд╕реАрдПрд╕рдПрд╕ рдлрд╛рдЗрд▓реЗрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
5 рдЬреБрд▓рд╛рдИ 2013 рдХреЛ рд╕реБрдмрд╣ 10:08 рдмрдЬреЗ, "рд╕реЛрд╡рд┐рдпрдд" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдмрд┐рд▓реНрдХреБрд▓ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ CSSO рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ CSS рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ
рдкреБрдирд░реНрд▓реЗрдЦрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░рдВрдЯ рдХрд╛рд░реНрдп рднреА рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ
рдпрд╣ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣,
рд╕рдорд╛рди рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХрд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рд╣реИ,
рдбреЛрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рдкрд░реАрддред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHub рдкрд░ рджреЗрдЦреЗрдВhttps://github.com/less/less.js/issues/950#issuecomment -20505834
.

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрдо рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ
(рджреЛрдиреЛрдВ рдПрдХ рд╕рдореВрд╣реАрдХрд░рдг рд╡рд┐рдХрд▓реНрдк рдФрд░ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рдХрд▓реНрдк) рдпрджрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ
рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ...

рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ "рд╕реЗрдХреНрд╢рди" рдпрд╛ "рдЧреНрд░реБрдк" рд╡рд┐рдЪрд╛рд░ рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдХреЛ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдХреЛрдИ рдХреЛрдб рдореЗрдВ @media рд╕рдВрдкрддреНрддрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдПрдХ @media рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдирд┐рдпрдВрддреНрд░рдг рджреЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдКрдкрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде (рдЗрд╕рд▓рд┐рдП рд╣рд░ рддрд░рд╣ рд╕реЗ, рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ)ред рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛:

<strong i="8">@media</strong> screen {
  .my-class > .mediaScreen();
  #screenSpace1(screen);
  #screenSpace2(screen);
}

//technique #1 only works for a top level class or id that can act as a namespace
//and would not handle a deep nesting very well
.my-class {
  regular-property: value;

  .mediaScreen(<strong i="9">@selectorString</strong>: ~'.my-class') { //full path needs repeat here if deeply nested
    @{selectorString} {
      media-screen-property: value;
    }
  }
}

//technique #2 allows for tag selectors and easier deeper nesting 
#screenSpace1(<strong i="10">@place</strong>: noMedia) {
  div > ul {
    .setProps() when (<strong i="11">@place</strong> = noMedia) {
       regular-property: value;
    }
    .setProps() when (<strong i="12">@place</strong> = screen) {
       screen-property: value;
    }
    .setProps();

    li {
       .setProps() when (<strong i="13">@place</strong> = noMedia) {
          regular-property: value;
          &:hover { regular-property: value; }
       }
       .setProps() when (<strong i="14">@place</strong> = screen) {
          screen-property: value;
          &:hover { screen-property: value; }
        }
       .setProps();
    }
  }
}
#screenSpace1();

.more-classes-not-needing-media {property: value;}

#screenSpace2(<strong i="15">@place</strong>: noMedia) {
  .someClass {
    .setProps() when (<strong i="16">@place</strong> = noMedia) {
       regular-property: value;
    }
    .setProps() when (<strong i="17">@place</strong> = screen) {
       screen-property: value;
    }
    .setProps();

    > a {
       .setProps() when (<strong i="18">@place</strong> = noMedia) {
          regular-property: value;
          &:hover { regular-property: value; }
       }
       .setProps() when (<strong i="19">@place</strong> = screen) {
          screen-property: value;
          &:hover { screen-property: value; }
        }
       .setProps();
    }
  }
}
#screenSpace2();

рдЬреЛ рдЗрд╕ рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

<strong i="23">@media</strong> screen {
  .my-class {
    media-screen-property: value;
  }
  div > ul {
    screen-property: value;
  }
  div > ul li {
    screen-property: value;
  }
  div > ul li:hover {
    screen-property: value;
  }
  .someClass {
    screen-property: value;
  }
  .someClass > a {
    screen-property: value;
  }
  .someClass > a:hover {
    screen-property: value;
  }
}
.my-class {
  regular-property: value;
}
div > ul {
  regular-property: value;
}
div > ul li {
  regular-property: value;
}
div > ul li:hover {
  regular-property: value;
}
.more-classes-not-needing-media {
  property: value;
}
.someClass {
  regular-property: value;
}
.someClass > a {
  regular-property: value;
}
.someClass > a:hover {
  regular-property: value;
}

рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:

/*
 * Span mixins
 * adapted from Gridpak Beta LESS
 * http://gridpak.com/
 * Created by <strong i="6">@erskinedesign</strong>
 */

.mixin-span(<strong i="7">@num</strong>, <strong i="8">@gutter_pc</strong>, <strong i="9">@padding</strong>, @max_columns) when (<strong i="10">@num</strong> > @max_columns) {
    .mixin-span(<strong i="11">@max_columns</strong>, <strong i="12">@gutter_pc</strong>, <strong i="13">@padding</strong>, @max_columns);
}
.mixin-span(<strong i="14">@num</strong>, <strong i="15">@gutter_pc</strong>, <strong i="16">@padding</strong>, @max_columns) when (<strong i="17">@num</strong> =< @max_columns) {
    <strong i="18">@one_col</strong>: (100% - (<strong i="19">@gutter_pc</strong> * (<strong i="20">@max_columns</strong> - 1))) / @max_columns;
    width:(<strong i="21">@one_col</strong> * @num) + (<strong i="22">@gutter_pc</strong> * (<strong i="23">@num</strong> - 1));
    padding:@padding;
    margin-left:@gutter_pc;
}
.mixin-span_first() {
    margin-left:0;
}

// end of adapted Gridpak LESS

// Namespaced mixin sets

#mob{
    <strong i="24">@max_columns</strong>: 1;
    <strong i="25">@padding</strong>: 0 1.5%;
    <strong i="26">@gutter_pc</strong>: 5%;

    .span(@col){
        <strong i="27">@media</strong> screen and (max-width:300px){
            .mixin-span(<strong i="28">@col</strong>, <strong i="29">@gutter_pc</strong>, <strong i="30">@padding</strong>, @max_columns);
            .mixin-span_first;
        }
    }
}

#desk{
    <strong i="31">@max_columns</strong>: 10;
    <strong i="32">@padding</strong>: 0 3%;
    <strong i="33">@gutter_pc</strong>: 5%;

    .span(@col){
        <strong i="34">@media</strong> screen and (min-width:301px){
            .mixin-span(<strong i="35">@col</strong>, <strong i="36">@gutter_pc</strong>, <strong i="37">@padding</strong>, @max_columns);
        }
    }
}

//assign different layouts per namespaced breakpoint
/* ----- Header ----- */
#header{
    #mob > .span(2);
    #desk > .span(4);
    .mixin-span_first;
    background-color:#888;
    color:#fff;
}

/* ----- Main ----- */
#main{
    #mob > .span(1);
    #desk > .span(6);
    background-color:#eee;
    color:#111;
}

рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдореВрд╣ рдХреЗ, рдЙрддреНрдкрдиреНрди рд╕реАрдПрд╕рдПрд╕ рдереЛрдбрд╝рд╛ рднрд╛рд░реА рд╣реИ

/* ----- Header ----- */
#header {
  margin-left: 0;
  background-color: #888;
  color: #fff;
}
<strong i="41">@media</strong> screen and (max-width: 300px) {
  #header {
    width: 100%;
    padding: 0 1.5%;
    margin-left: 5%;
    margin-left: 0;
  }
}
<strong i="42">@media</strong> screen and (min-width: 301px) {
  #header {
    width: 37%;
    padding: 0 3%;
    margin-left: 5%;
  }
}
/* ----- Main ----- */
#main {
  background-color: #eee;
  color: #111;
}
<strong i="43">@media</strong> screen and (max-width: 300px) {
  #main {
    width: 100%;
    padding: 0 1.5%;
    margin-left: 5%;
    margin-left: 0;
  }
}
<strong i="44">@media</strong> screen and (min-width: 301px) {
  #main {
    width: 58%;
    padding: 0 3%;
    margin-left: 5%;
  }
}

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ https://github.com/buildblocks/grunt-combine-media-queries рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЗрд╕ рд╕рдордп рдХреЗрд╡рд▓ рдиреНрдпреВрдирддрдо рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдСрд░реНрдбрд░ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдлрд░реНрд╕реНрдЯ рд╕рд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

рдЖрдИрдПрдордУ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдореВрд╣ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ # 930 рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛

рдмрдврд╝рд┐рдпрд╛ рдЯреВрд▓ @krava ! рдзрдиреНрдпрд╡рд╛рдж

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!!! IMO рдпрд╣ рд╕рднреА рдЕрд░реНрдереЛрдВ рдореЗрдВ KRAVA рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ LESS . рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ

+1

рдореИрдВ рдЗрд╕реЗ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ!

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдСрдЯреЛ-рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдП (options.json)ред рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдПрдХ рдкреНрд▓рдЧрдЗрди рдПрдХ рдПрдбрд┐рдЯрд┐рд╡ рдлреАрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдпрд╣ рд╢рд╛рдпрдж рдореЗрд░реЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЖрдзреЗ рд╕реЗ рдХрдо рдХрд░ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдШрдЯрдХреЛрдВ рдХреЗ рднреАрддрд░ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдЪрд░рдг рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдЪрдпрдирдХрд░реНрддрд╛ рдкреБрдирд░реНрдХреНрд░рдордг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА "рд╕рдореВрд╣" рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдореВрд╣реАрдХреГрдд рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

http://helloanselm.com/2014/web-performance-one-or-thousand-media-queries/
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рдкреНрд▓рдЧрдЗрди рдЕрдЪреНрдЫрд╛ рд╣реИред

рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЗрддрдирд╛ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдгрд╛рдореА рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ <strong i="5">@media</strong> screen and (max-width: 480px) рддрд╛рд░ рдЬреБрдбрд╝рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдпрд╣ рдкреНрд░рд╢реНрди SO рдкрд░ рдкреВрдЫрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЖрдВрд╢рд┐рдХ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИред

@ рд╕рд╛рдд-рдЪрд░рдг-рдЕрдзрд┐рдХрддрдо рдиреЗ рдЖрдкрдХреЛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ред рдмрд╣реБрдд рдореЗрдЯрд╛;)

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдХреНрд╕рд┐рди рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреЛрд╕реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрддреА рд╣реИ рдФрд░ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдорд░реНрдЬ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдк рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
https://github.com/less/less.js/issues/950#issuecomment -17723748

рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдЦреЛрдЬ рдХреА рд╣реИ рдФрд░ рджреЛ рдЧреНрд░рдВрдЯ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд╛рдП рд╣реИрдВ рдЬреЛ рдореАрдбрд┐рдпрд╛ рдХреНрд╡реЗрд░реА рдЧреНрд░реБрдкрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ:

https://github.com/buildblocks/grunt-combine-media-queries

https://github.com/Se7enSky/grunt-group-css-media-queries

рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдПрдВ рдЧрд▓реНрдк рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред
http://github.com/konitter/gulp-combine-media-queries

рдЪреВрдВрдХрд┐ v2 рдЖрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП https://github.com/bassjobsen/less-plugin-group-css-media-queries (рдФрд░ https://github.com/bassjobsen/less-plugin-pleeease) рджреЗрдЦреЗрдВред

рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ рдПрдХ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдФрд░ рдХреЛрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ (AFAIK - @less/admin рд╕рд╣реА рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЧрд▓рдд рд╣реИ)ред

@gyopiazza рдореЗрд░реЗ рдкрд╛рд╕ https://github.com/less/less.js/issues/950#issuecomment -17723748 рдКрдкрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ: рдЖрдкрдХреЛ рдорд┐рдХреНрд╕рд┐рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рд╕реАрдПрд╕рдПрд╕ init рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@nfq рдпрд╣ рдХрд╛рдлреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" рдЦрд╛рд▓реА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо .step*() рдорд┐рдХреНрд╕рд┐рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЕрд░реНрдерд╛рдд рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпреЗ рдЪреАрдЬреЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" .step*() рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдореЗрдВ рд╣реИрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛/рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб, рдЬрдмрдХрд┐ рдХрд╕реНрдЯрдо .step*() рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдЖрдкрдХреА рдереАрдо/рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдореЗрдВ рд╣реИрдВ)ред

@nfq рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ @ рд╕рд╛рдд-рдЪрд░рдг-рдЕрдзрд┐рдХрддрдо рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдорд┐рд╢реНрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореАрдбрд┐рдпрд╛-рдкреНрд░рд╢реНрди рдЧреИрд░-рдореМрдЬреВрдж рдорд┐рд╢реНрд░рдг рдХреЛ рдмреБрд▓рд╛рдПрдВрдЧреЗред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рд╕рдВрдХрд▓рди рд╕рдордп рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдереЛрдбрд╝рд╛ рд╕рд╛)ред

@gyopiazza рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд╕рдВрдХрд▓рди рд╕рдордп рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЦреНрдп рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЗ рдиреАрдЪреЗ рд╕рднреА рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╛рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж!!

@ рд╕рд╛рдд-рдЪрд░рдг-рдЕрдзрд┐рдХрддрдо рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХрд╛ рдЙрддреНрддрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореИрдВ рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ рд╣реВрдВ!

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд▓реАрди-рд╕реАрдПрд╕рдПрд╕ рднреА @media v3 рдХреЗ рдмрд╛рдж рд╕реЗ рд╡рд┐рд▓рдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХрдо-рдкреНрд▓рдЧрдЗрди-рдХреНрд▓реАрди-рд╕реАрдПрд╕рдПрд╕ рднреА рдХрд░рддрд╛ рд╣реИ

main.less рдХреЗ рд╕рд╛рде:

header {
    color: green;

    <strong i="9">@media</strong> only screen (max-width: 500px) { color: red; }
}

footer {
    color: green;

    <strong i="10">@media</strong> only screen (max-width: 500px) { color: red; }
}

lessc --clean-css="advanced" main.less рдЖрдЙрдЯрдкреБрдЯ:
footer,header{color:green}<strong i="15">@media</strong> only screen (max-width:500px){footer,header{color:red}}

рдХрдо-рдкреНрд▓рдЧрдЗрди-рдХреНрд▓реАрди-рд╕реАрдПрд╕рдПрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ --рд╕реНрдХрд┐рдк-рдЙрдиреНрдирдд рд╕рддреНрдп рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЖрдкрдХреЛ @рдореАрдбрд┐рдпрд╛ рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП advanced рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

@nfq "рдорд┐рд╢реНрд░рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг" рдХреЗ рд╕рд╛рде рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╢реНрди рдЕрднреА рднреА рдиреАрдЪреЗ рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВ (рдпрд╛ рдХрд╣реАрдВ рднреА рдЖрдк рдЙрдиреНрд╣реЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред

@gyopiazza рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рдБред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЦреБрд╢ !!

@bassjobsen рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рддрдХ рдХрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

joe223 picture joe223  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chricken picture chricken  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vecerek picture vecerek  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matthew-dean picture matthew-dean  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yggi49 picture yggi49  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ