chushihua
This commit is contained in:
+174
@@ -0,0 +1,174 @@
|
||||
# px2rem
|
||||
|
||||
According to one stylesheet, generate rem version and @1x, @2x and @3x stylesheet.
|
||||
|
||||
[![NPM version][npm-image]][npm-url]
|
||||
[![Build status][travis-image]][travis-url]
|
||||
[![Test coverage][coveralls-image]][coveralls-url]
|
||||
[![Downloads][downloads-image]][downloads-url]
|
||||
|
||||
[npm-image]: https://img.shields.io/npm/v/px2rem.svg?style=flat-square
|
||||
[npm-url]: https://npmjs.org/package/px2rem
|
||||
[travis-image]: https://img.shields.io/travis/songsiqi/px2rem.svg?style=flat-square
|
||||
[travis-url]: https://travis-ci.org/songsiqi/px2rem
|
||||
[coveralls-image]: https://img.shields.io/coveralls/songsiqi/px2rem.svg?style=flat-square
|
||||
[coveralls-url]: https://coveralls.io/r/songsiqi/px2rem
|
||||
[downloads-image]: http://img.shields.io/npm/dm/px2rem.svg?style=flat-square
|
||||
[downloads-url]: https://npmjs.org/package/px2rem
|
||||
|
||||
This set of tools contains:
|
||||
|
||||
* a CLI tool
|
||||
* [gulp plugin](https://www.npmjs.com/package/gulp-px3rem)
|
||||
* [webpack loader](https://www.npmjs.com/package/px2rem-loader)
|
||||
* [postcss plugin](https://www.npmjs.com/package/postcss-px2rem)
|
||||
|
||||
## Usage
|
||||
|
||||
The raw stylesheet only contains @2x style, and if you
|
||||
|
||||
* don't intend to transform the original value, eg: 1px border, add `/*no*/` after the declaration
|
||||
* intend to use px by force,eg: font-size, add `/*px*/` after the declaration
|
||||
|
||||
**Attention: Dealing with SASS or LESS, only `/*...*/` comment can be used, in order to have the comments persisted**
|
||||
|
||||
### CLI tool
|
||||
|
||||
```
|
||||
$ npm install -g px2rem
|
||||
```
|
||||
```
|
||||
$ px2rem -o build src/*.css
|
||||
```
|
||||
|
||||
```
|
||||
Usage: px2rem [options] <file...>
|
||||
|
||||
Options:
|
||||
|
||||
-h, --help output usage information
|
||||
-V, --version output the version number
|
||||
-u, --remUnit [value] set `rem` unit value (default: 75)
|
||||
-x, --threeVersion [value] whether to generate @1x, @2x and @3x version stylesheet (default: false)
|
||||
-r, --remVersion [value] whether to generate rem version stylesheet (default: true)
|
||||
-b, --baseDpr [value] set base device pixel ratio (default: 2)
|
||||
-p, --remPrecision [value] set rem value precision (default: 6)
|
||||
-o, --output [path] the output file dirname
|
||||
```
|
||||
|
||||
### API
|
||||
|
||||
```
|
||||
var Px2rem = require('px2rem');
|
||||
var px2remIns = new Px2rem([config]);
|
||||
var originCssText = '...';
|
||||
var dpr = 2;
|
||||
var newCssText = px2remIns.generateRem(originCssText); // generate rem version stylesheet
|
||||
var newCssText = px2remIns.generateThree(originCssText, dpr); // generate @1x, @2x and @3x version stylesheet
|
||||
```
|
||||
|
||||
### Example
|
||||
|
||||
#### Pre processing:
|
||||
|
||||
One raw stylesheet: `test.css`
|
||||
|
||||
```
|
||||
.selector {
|
||||
width: 150px;
|
||||
height: 64px; /*px*/
|
||||
font-size: 28px; /*px*/
|
||||
border: 1px solid #ddd; /*no*/
|
||||
}
|
||||
```
|
||||
|
||||
#### After processing:
|
||||
|
||||
Rem version: `test.debug.css`
|
||||
|
||||
```
|
||||
.selector {
|
||||
width: 2rem;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
[data-dpr="1"] .selector {
|
||||
height: 32px;
|
||||
font-size: 14px;
|
||||
}
|
||||
[data-dpr="2"] .selector {
|
||||
height: 64px;
|
||||
font-size: 28px;
|
||||
}
|
||||
[data-dpr="3"] .selector {
|
||||
height: 96px;
|
||||
font-size: 42px;
|
||||
}
|
||||
```
|
||||
|
||||
@1x version: `test1x.debug.css`
|
||||
|
||||
```
|
||||
.selector {
|
||||
width: 75px;
|
||||
height: 32px;
|
||||
font-size: 14px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
```
|
||||
|
||||
@2x version: `test2x.debug.css`
|
||||
|
||||
```
|
||||
.selector {
|
||||
width: 150px;
|
||||
height: 64px;
|
||||
font-size: 28px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
```
|
||||
|
||||
@3x version: `test3x.debug.css`
|
||||
|
||||
```
|
||||
.selector {
|
||||
width: 225px;
|
||||
height: 96px;
|
||||
font-size: 42px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
```
|
||||
|
||||
## Technical proposal
|
||||
|
||||
comment hook + css parser
|
||||
|
||||
## Change Log
|
||||
|
||||
### 0.5.0
|
||||
|
||||
* Support Animation keyframes (no `/*px*/` comment).
|
||||
|
||||
### 0.4.2
|
||||
|
||||
* The generated [data-dpr] rules follow the origin rule, no longer placed at the end of the whole style sheet.
|
||||
* Optimize 0px, do not generate 3 [data-dpr] rules.
|
||||
|
||||
### 0.3.1
|
||||
|
||||
* Change default remUnit to 75.
|
||||
* Delete comment config.
|
||||
* Don't generate @1x, @2x and @3x version stylesheet by default.
|
||||
|
||||
### 0.2.2
|
||||
|
||||
* Support media query.
|
||||
|
||||
### 0.1.8
|
||||
|
||||
* Fix cli option duplication bug.
|
||||
* Fix regular expression bug.
|
||||
* Fix common comments bug which affects rem transformation.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user