Hi, here's the current todo list: * convert more of html.cc and form.cc to the new style handling. see Html_tag_open_a() as an example. Basically every style change that happens due to an HTML attribute (e.g. bgcolor="black") should be handled by passing a corresponding hint in CSS form to the styleEnginge using the setNonCssHints() methods. This way these attributes can be overridden e.g. by the user stylesheet as defined in the CSS standard. Other styling that is fixed for the HTML element in question (e.g. font size changes caused by <small>) should be replaced by corresponding entries in the user-agent stylesheet (see CssContext::buildUserAgentStyle()). There is an example user-agent stylesheet at http://www.w3.org/TR/CSS21/sample.html One of the more complex parts to convert is list handling (Html_tag_open_li()). * Reenable shaded colors as default for table borders. However CSS21 states (http://www.w3.org/TR/CSS21/box.html#border-color-properties): "If an element's border color is not specified with a border property, user agents must use the value of the element's 'color' property as the computed value for the border color." Not sure what to do here. What do you think? * Switch "width" and "height" handling from dw::core::style::Length to CssLength. Problem is how to handle relative lengths as they occur in Html_parse_length_or_multi_length(). They don't seem to exist in the CSS model. * Remove functions from html.cc that are now empty (e.g. Html_tag_open_em()). DilloHtml should be able to handle NULL for TagOpenFunct and TagCloseFunct of TagInfo. Or we could use a default function. * Enhance the CSS parser (or tokenizer) to properly ignore CSS comments. * Enhance the CSS parser to handle more complex CSS selector definitions (see http://www.w3.org/TR/CSS21/selector.html). * Figure out how to implement more complex selectors in the CssSelector class. At the same time think about how to speed up selector matching (currently on every opening tag all selectors are checked). Cheers, Johannes
participants (1)
-
Johannes.Hofmann@gmx.de