@@ -19,7 +19,7 @@ function match(mediaQuery, values) {
19
19
var RE_MEDIA_QUERY = / (?: ( o n l y | n o t ) ? \s * ( [ ^ \s \( \) ] + ) \s * a n d \s * ) ? ( .+ ) ? / i,
20
20
RE_MQ_EXPRESSION = / \( \s * ( [ ^ \s \: \) ] + ) \s * (?: \: \s * ( [ ^ \s \) ] + ) ) ? \s * \) / ,
21
21
RE_MQ_FEATURE = / ^ (?: ( m i n | m a x ) - ) ? ( .+ ) / ,
22
- RE_LENGTH_VALUE = / ( \d + ) ( e m | r e m | p x | c m | m m | i n | p t | p c ) ? / ;
22
+ RE_LENGTH_UNIT = / ( e m | r e m | p x | c m | m m | i n | p t | p c ) ? $ / ;
23
23
24
24
function parseQuery ( mediaQuery ) {
25
25
return mediaQuery . split ( ',' ) . map ( function ( query ) {
@@ -53,25 +53,17 @@ function parseQuery(mediaQuery) {
53
53
}
54
54
55
55
function toPx ( length ) {
56
- var captures = String ( length ) . match ( RE_LENGTH_VALUE ) ,
57
- value = Number ( captures [ 1 ] ) ,
58
- units = captures [ 2 ] ;
56
+ var value = parseFloat ( length ) ,
57
+ units = String ( length ) . match ( RE_LENGTH_UNIT ) [ 1 ] ;
59
58
60
59
switch ( units ) {
61
- case 'em' :
62
- case 'rem' :
63
- return value * 16 ;
64
- case 'cm' :
65
- return value * 96 / 2.54 ;
66
- case 'mm' :
67
- return value * 96 / 2.54 / 10 ;
68
- case 'in' :
69
- return value * 96 ;
70
- case 'pt' :
71
- return value * 72 ;
72
- case 'pc' :
73
- return value * 72 / 12 ;
74
- default :
75
- return value ;
60
+ case 'em' : return value * 16 ;
61
+ case 'rem' : return value * 16 ;
62
+ case 'cm' : return value * 96 / 2.54 ;
63
+ case 'mm' : return value * 96 / 2.54 / 10 ;
64
+ case 'in' : return value * 96 ;
65
+ case 'pt' : return value * 72 ;
66
+ case 'pc' : return value * 72 / 12 ;
67
+ default : return value ;
76
68
}
77
69
}
0 commit comments