Really simple media queries in LESS

ImogenDunn 8年前發布 | 7K 次閱讀 HTML 前端技術

來自: https://github.com/ApatheticG/breakpoint-less

breakpoint-less

Really simple media queries in LESS

Table of contents

  1. Usage
    1. Single value
    2. Two values
    3. Property and value pair
    4. Several media rules
    5. Type keywords
  2. Vendor prefixes
  3. Media queries concatenation

This simple mixin does almost everything, that it'sinspirer can. Quote:

Create a variable using a simplified syntax based on most commonly used media queries, then call it using the breakpoint mixin.

There are two major differences between this library and breakpoint-sass. First, it doesn't (and, in my humble opinion, shouldn't) take care of vendor prefixes. Second, there is no way to get context as describedhere.

Usage

First, include the main _breakpoint.less file like this:

@import "lib/_breakpoint";

Second, use it!

Single value

.test1 {
    .breakpoint(450px, {
        color: #fff;
    });
}
@media only screen and (min-width: 450px) {
    .test1 {
        color: #fff;
    }
}

Two values

.test2 {
    .breakpoint("450px 500px", {
        color: #fff;
    });
}
@media only screen and (min-width: 450px) and (min-height: 500px) {
    .test2 {
        color: #fff;
    }
}

Property and value pair

.test3 {
    .breakpoint("max-width 1000px", {
        color: #fff;
    });
}
@media only screen and (max-width: 1000px) {
    .test3 {
        color: #fff;
    }
}

Several media rules

.test4 {
    .breakpoint("(min-height 1000px) (orientation portrait)", {
        color: #fff;
    });
}
@media only screen and (min-height: 1000px) and (orientation: portrait) {
    .test4 {
        color: #fff;
    }
}

Type keywords

.test6 {
    .breakpoint(300px, "not print", {
        color: #fff;
    });
}
.test7 {
    .breakpoint(300px, "all", {
        color: #fff;
    });
}
@media not print and (min-width: 300px) {
    .test6 {
        color: #fff;
    }
}
@media only all and (min-width: 300px) {
    .test7 {
        color: #fff;
    }
}

You can see other examples in thetest file.

Vendor prefixes

Breakpoint-less doesn't worry about cross-browser compatibility. Neither should you. Who should, you might ask?Autoprefixer.

.test9 {
    .breakpoint("min-resolution 3dppx", {
        color: #fff;
    });
}
/ Without autoprefixer /
@media only screen and (min-resolution: 3dppx) {
    .test9 {
        color: #fff;
    }
}

/ With autoprefixer / @media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-resolution: 3dppx) { .test9 { color: #fff; } }</pre>

Media queries concatenation

LESS (just as SASS) has absolutely no internal way to combine media queries. Sorry, just no. But with the power of another PostCSS library -CSS MQPacker - mission becomes possible:

.test10 {
    .breakpoint(300px, {
        color: #fff;
    });
}
.test11 {
    .breakpoint(300px, {
        color: #fff;
    });
}
@media only screen and (min-width: 300px) {
    .test10 {
        color: #fff
    }
    .test11 {
        color: #fff
    }
}
</article>

 本文由用戶 ImogenDunn 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!