diff --git a/src/utils.rs b/src/utils.rs
index dd927da..b8d763b 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -4,7 +4,7 @@ use html5ever::{namespace_url, ns, LocalName, QualName};
 use regex::Regex;
 use swc_common::DUMMY_SP;
 // use lightningcss::values::number::CSSNumber;
-use swc_ecma_ast::{JSXMemberExpr, JSXObject, Callee, Expr, CallExpr, Ident, Lit, Number, PropOrSpread, Prop, PropName};
+use swc_ecma_ast::{JSXMemberExpr, JSXObject, Callee, Expr, CallExpr, Ident, Lit, Number, PropOrSpread, Prop, PropName, ExprOrSpread};
 
 use crate::constants::{CONVERT_STYLE_PREFIX, CONVERT_STYLE_PX_FN};
 
@@ -72,21 +72,41 @@ pub fn prefix_style_key(s: &str) -> String {
 
 pub fn convert_px_to_units(input: String) -> Expr {
   // 定义匹配 '16px' 的正则表达式
-  let re = Regex::new(r"(-?(\d+(\.\d*)?|\.\d+))px").unwrap();
+  let re: Regex = Regex::new(r"(-?(\d+(\.\d*)?|\.\d+))((px)|(vw)|(vh))").unwrap();
   // 使用正则表达式进行匹配
   if let Some(captures) = re.captures(&input) {
       // 提取匹配到的数字部分
       let input_str = captures.get(1).unwrap().as_str();
+      let unit = match captures.get(4) {
+        Some(m) => m.as_str(),
+        None => "vp"
+      };
+
       if let Ok(number) = input_str.parse::<f64>() {
+
+        let mut args: Vec<ExprOrSpread> = vec![
+          Expr::Lit(Lit::Num(Number::from(number))).into(),
+        ];
+        match unit {
+          "vw" => {
+            args.push(Expr::Lit(Lit::Str("vw".into())).into());
+          },
+          "vh" => {
+            args.push(Expr::Lit(Lit::Str("vh".into())).into());
+          },
+          // "px" => {
+          //   args.push(Expr::Lit(Lit::Str("px".into())).into());
+          // },
+          _ => {}
+        }
+
         let fun_call_expr = Expr::Call(CallExpr {
           span: DUMMY_SP,
           callee: Callee::Expr(Box::new(Expr::Ident(Ident::new(
             CONVERT_STYLE_PX_FN.into(),
-            DUMMY_SP,
+            DUMMY_SP
           )))),
-          args: vec![
-            Expr::Lit(Lit::Num(Number::from(number))).into()
-          ],
+          args,
           type_args: None,
         });