diff options
Diffstat (limited to 'css')
-rw-r--r-- | css/ruleset.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/css/ruleset.c b/css/ruleset.c index d04f62359..30d8c8ffd 100644 --- a/css/ruleset.c +++ b/css/ruleset.c @@ -658,15 +658,19 @@ int parse_length(struct css_length * const length, return 0; } - if (v->type != CSS_NODE_DIMENSION) + if (v->type != CSS_NODE_DIMENSION && v->type != CSS_NODE_NUMBER) return 1; num_length = strspn(v->data, "0123456789+-."); - u = css_unit_parse(v->data + num_length, - v->data_length - num_length); - if (u == CSS_UNIT_UNKNOWN) { - return 1; + if (v->type == CSS_NODE_DIMENSION) { + u = css_unit_parse(v->data + num_length, + v->data_length - num_length); + if (u == CSS_UNIT_UNKNOWN) { + return 1; + } + } else { + u = CSS_UNIT_PX; } value = atof(v->data); if (non_negative && value < 0) |