* Refactored CSS properties
All CSS related properties are moved into the separate class css_properties.
Getters and setters are removed from classes element and html_tag.
Access to the css_properties rleased via css() [ro] and css_w() [rw] methods
* fix: el_text don't have to copy all css properties from parent
* Refactored rendering code
* Added flex and inline_flex values for display css property
* Implementing box generation
https://www.w3.org/TR/CSS22/visuren.html#box-gen
* Split inlines on block box inside
* Split parsing and rendering trees.
* Fixed some bugs
* Fixed: impossible to click urls on Obama wiki's toc
* Make element::get_placement work again
* Fixed: incorrect rendering table captions
* find_styles_changes function returned to the element class
* set parent correctly during render items split
* fixed urls on https://en.cppreference.com/w/cpp/container/vector
* fixed rendering blocks with width in percents
Example:
https://web.archive.org/web/20110101155107/http://www.unicode.org/
Issue #208
* Fixed placement of blocks with "overflow: hidden" with floating boxes.
* refactoring of rendering block
* Selectors :before and :after returned back with fixed behaviour.
* fixed render_item::is_last_child_inline
* fixed: text inside nested inlines has extra paddings/margins
* fixed documet test
page: https://en.wikipedia.org/wiki/Obama
problem: font is too small
culprit: font-size:calc(1em * 0.875);
This is a partial fix: calc is unsupported, so the above declaration should be ignored completely,
but instead it sets font-size to that of a parent, so this code doesn't work as intended:
font-size:0.875em;font-size:calc(1em * 0.875);
This reverts commit c161a0220d.
In Chrome <div align=center> sets text-align to -webkit-center, which centers both inline and block-level children.
text-align:center aligns only inline children.
Also fixes rendering of this HTML:
<table width=100px border=1>
<tr><td>aaa<td style="display:none">bbb<td>ccc
and this HTML:
<style>p{display:table-cell}</style>
<p>aaa</p><!----><p>bbb</p>
and improves rendering of this HTML:
<style>
p{display:table-cell}
span{white-space:pre}
</style>
<span>
<p>aaa</p> <p>bbb</p>