The workaround worked fine.

As always Hussein, thanks for your prompt, comprehensive and accurate answer.

Merci beaucoup !

On 3/30/07, Hussein Shafie <hussein at xmlmind.com> wrote:
> Fabian Mandelbaum wrote:
> > I've removed the space between the element name and the [ declaring
> > the attribute  and got the same behaviour, the problem seems to be
> > somewhere else.
> >
> > It looks like the elements "below" the ones declared on the CSS do not
> > inherit the line-through decoration.
> >
> > XML excerpt:
> >
> > <section revisionflag="deleted">
> > <title>The Title</title>
> > <para>Some content</para>
> > </section>
> >
> > I expect that "The Title" and "Some content" are striken-through when
> > I set the revisionflag="deleted" on its containing element, here the
> > section, however they are not. If I go and set the
> > revisionflag="deleted" on, say the para, then "Some content" is
> > striken-through.
> >
> > So, the CSS rule is not being inherited by the children of elements
> > with revisionflag="deleted". Is this expected behaviour? (I cannot
> > anticipate in advance all possible children of elements with
> > revisionflag="deleted", so it's not practicable to declare CSS rules
> > for them all...)
> >
>
> OK, there is an issue here.
>
> The text-decoration CSS property is *not* inherited stricto sensu. It is
> more complex than that. See
> http://www.w3.org/TR/REC-CSS2/text.html#propdef-text-decoration
>
> XXE implementation is ``semi-conformant'':
>
> * If you add "text-decoration: line-through;" to a block, this property
> is not inherited by contained text.
>
> * If you add "text-decoration: line-through;" to an inline, it is
> inherited by contained text, an this, whatever the child element which
> contains this text. For example, all the text contained in child
> elements of an XHTML <a> indeed is underlined.
>
> I'm affraid you must consider this as being a *limitation* of XXE.
>
> The work around is to use something like:
> ---
> *[revisionflag="deleted"] * {
>     text-decoration: line-through;
> }
> ---
> Not very efficient but it works.
>
> An efficient alternative is to use another kind of decoration: XHTML
> example:
>
> ---
> ins {
>     display: block;
>     border-width: 2px;
>     border-style: solid;
>     border-color: transparent blue transparent transparent;
>     padding-right: 5px;
> }
>
> del {
>     display: block;
>     color: gray;
>     border-width: 2px;
>     border-style: solid;
>     border-color: transparent gray transparent transparent;
>     padding-right: 5px;
> }
> ---
>


-- 
Fabian Mandelbaum
IS Engineer

Reply via email to