diff --git a/System/Libraries/Html/Renderer.HC b/System/Libraries/Html/Renderer.HC
index be11cfe..1a74bd7 100644
--- a/System/Libraries/Html/Renderer.HC
+++ b/System/Libraries/Html/Renderer.HC
@@ -413,6 +413,33 @@ U0 @set_css_distance(U8* str, F64* value, I64* type)
}
}
+U0 @set_css_distance_from_attribute(U8* str, F64* value, I64* type)
+{
+ if (!str || !value || !type)
+ return;
+ if (!StrICmp(str, "0")) {
+ *value = 0;
+ *type = CSS_DISTANCE_UNDEFINED;
+ return;
+ }
+ U8 buf[128];
+ StrCpy(buf, str);
+ if (String.EndsWith("em", buf)) {
+ buf[StrLen(buf) - 2] = NULL;
+ *value = Str2F64(buf);
+ *type = CSS_DISTANCE_EM;
+ return;
+ }
+ if (String.EndsWith("%", buf)) {
+ buf[StrLen(buf) - 1] = NULL;
+ *value = Str2F64(buf);
+ *type = CSS_DISTANCE_PERCENT;
+ return;
+ }
+ *value = Str2F64(str);
+ *type = CSS_DISTANCE_PIXELS;
+}
+
U0 @set_css_border_style(U8* str, I64* style)
{
I64 i;
@@ -1652,6 +1679,14 @@ U0 @apply_attribute_values_to_node(@html_dom_node* node)
node->textAlign = CSS_TEXT_ALIGN_RIGHT;
}
+ if (node->attributes->@("width") && node->widthDistanceType == CSS_DISTANCE_UNDEFINED) {
+ @set_css_distance_from_attribute(node->attributes->@("width"), &node->width, &node->widthDistanceType);
+ }
+
+ if (node->attributes->@("height") && node->heightDistanceType == CSS_DISTANCE_UNDEFINED) {
+ @set_css_distance_from_attribute(node->attributes->@("height"), &node->height, &node->heightDistanceType);
+ }
+
if (!StrICmp(node->tagName, "center"))
node->textAlign = CSS_TEXT_ALIGN_CENTER;
}