@@ -80,20 +80,34 @@ module.exports = postcss.plugin('postcss-media-minmax', function () {
8080 } )
8181
8282 /**
83- * 转换 <mf-value> <|>= <mf-name> <|>= <mf-value>
84- * $1 $2 $3 $4$5 $5
83+ * 转换 <mf-value> <|<= <mf-name> <|<= <mf-value>
84+ * 转换 <mf-value> >|>= <mf-name> >|>= <mf-value>
85+ * $1 $2$3 $4 $5$6 $7
8586 * (500px <= width <= 1200px) => (min-width: 500px) and (max-width: 1200px)
87+ * (500px < width <= 1200px) => (min-width: 501px) and (max-width: 1200px)
8688 * (900px >= width >= 300px) => (min-width: 300px) and (max-width: 900px)
8789 */
8890
8991 rule . params = rule . params . replace ( / \( \s * ( (?: - ? \d * \. ? (?: \s * \/ ? \s * ) ? \d + [ a - z ] * ) ? ) \s * ( < | > ) ( = ? ) \s * ( [ a - z - ] + ) \s * ( < | > ) ( = ? ) \s * ( (?: - ? \d * \. ? (?: \s * \/ ? \s * ) ? \d + [ a - z ] * ) ? ) \s * \) / gi, function ( $0 , $1 , $2 , $3 , $4 , $5 , $6 , $7 ) {
9092
9193 if ( feature_name . indexOf ( $4 ) > - 1 ) {
9294 if ( $2 === '<' && $5 === '<' || $2 === '>' && $5 === '>' ) {
93- var min = ( $2 === '<' ) ? $1 : $7 ;
94- var max = ( $2 === '<' ) ? $7 : $1 ;
95+ var min = ( $2 === '<' ) ? $1 : $7 ;
96+ var max = ( $2 === '<' ) ? $7 : $1 ;
97+
98+ // output differently depended on expression direction
99+ // <mf-value> <|<= <mf-name> <|<= <mf-value>
100+ // or
101+ // <mf-value> >|>= <mf-name> >|>= <mf-value>
102+ var equals_for_min = $3 ;
103+ var equals_for_max = $6 ;
104+
105+ if ( $2 === '>' ) {
106+ equals_for_min = $6 ;
107+ equals_for_max = $3 ;
108+ }
95109
96- return create_query ( $4 , '>' , $3 , min ) + ' and ' + create_query ( $4 , '<' , $6 , max ) ;
110+ return create_query ( $4 , '>' , equals_for_min , min ) + ' and ' + create_query ( $4 , '<' , equals_for_max , max ) ;
97111 }
98112 }
99113 //如果不是指定的属性,不做替换
0 commit comments