aboutsummaryrefslogtreecommitdiffstats
path: root/src/css_properties.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/css_properties.cpp')
-rw-r--r--src/css_properties.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/css_properties.cpp b/src/css_properties.cpp
index 2696ae28..a3b458eb 100644
--- a/src/css_properties.cpp
+++ b/src/css_properties.cpp
@@ -240,6 +240,8 @@ void litehtml::css_properties::compute(const element* el, const document::ptr& d
doc->container()->load_image(m_list_style_image.c_str(), m_list_style_image_baseurl.c_str(), true);
}
+ m_order = el->get_int_property(_order_, false, 0, offset(m_order));
+
compute_background(el, doc);
compute_flex(el, doc);
}
@@ -391,22 +393,27 @@ void litehtml::css_properties::compute_background(const element* el, const docum
void litehtml::css_properties::compute_flex(const element* el, const document::ptr& doc)
{
- if (m_display == display_flex)
+ if (m_display == display_flex || m_display == display_inline_flex)
{
m_flex_direction = (flex_direction) el->get_enum_property(_flex_direction_, false, flex_direction_row, offset(m_flex_direction));
m_flex_wrap = (flex_wrap) el->get_enum_property(_flex_wrap_, false, flex_wrap_nowrap, offset(m_flex_wrap));
m_flex_justify_content = (flex_justify_content) el->get_enum_property(_justify_content_, false, flex_justify_content_flex_start, offset(m_flex_justify_content));
- m_flex_align_items = (flex_align_items) el->get_enum_property(_align_items_, false, flex_align_items_stretch, offset(m_flex_align_items));
+ m_flex_align_items = (flex_align_items) el->get_enum_property(_align_items_, false, flex_align_items_flex_normal, offset(m_flex_align_items));
m_flex_align_content = (flex_align_content) el->get_enum_property(_align_content_, false, flex_align_content_stretch, offset(m_flex_align_content));
}
+ m_flex_align_self = (flex_align_items) el->get_enum_property(_align_self_, false, flex_align_items_auto, offset(m_flex_align_self));
auto parent = el->parent();
- if (parent && parent->css().m_display == display_flex)
+ if (parent && (parent->css().m_display == display_flex || parent->css().m_display == display_inline_flex))
{
m_flex_grow = el->get_number_property(_flex_grow_, false, 0, offset(m_flex_grow));
m_flex_shrink = el->get_number_property(_flex_shrink_, false, 1, offset(m_flex_shrink));
- m_flex_align_self = (flex_align_self) el->get_enum_property(_align_self_, false, flex_align_self_auto, offset(m_flex_align_self));
- m_flex_basis = el->get_length_property(_flex_shrink_, false, css_length::predef_value(flex_basis_auto), offset(m_flex_basis));
+ m_flex_basis = el->get_length_property(_flex_basis_, false, css_length::predef_value(flex_basis_auto), offset(m_flex_basis));
+ if(!m_flex_basis.is_predefined() && m_flex_basis.units() == css_units_none && m_flex_basis.val() != 0)
+ {
+ // flex-basis property must contain units
+ m_flex_basis.predef(flex_basis_auto);
+ }
doc->cvt_units(m_flex_basis, get_font_size());
if(m_display == display_inline || m_display == display_inline_block)
{