I've implemented the 2nd solution, it works like a charm! Thank you
for your, prompt and precise answer (as always)!
On 11/2/06, Hussein Shafie <hussein at xmlmind.com> wrote:
> --> I'll suggest not to specify the collapser as generated content for
> the "title" child element, but rather to specify the collapser as
> generated content for the "variablelist" element itself:
>
> ---
> variablelist {
> collapsible: yes;
> /*not-collapsible-head: 1;*/
> collapsed-content: "variablelist";
> collapsed: yes;
> /*margin-left: 4ex;*/
> margin-left: 6ex; /*Larger than original value*/
> }
>
> variablelist:before {
> display: marker; /*with adaptations, display:block would work too*/
> content: collapser();
> }
>
> /* Of course, remove the "variablelist > title:before" rule */
> ---
>
>
>
> --> It is also possible to mix both approaches (trickier):
>
> ---
> variablelist {
> collapsible: yes;
> /*not-collapsible-head: 1;*/
> collapsed-content: "variablelist";
> collapsed: yes;
> /*margin-left: 4ex;*/
> margin-left: 6ex; /*Larger than original value*/
> }
>
> variablelist:before {
> display: marker;
> content: collapser();
> }
>
> variablelist > title:before {
> content: collapser() " [" label(xpath, "../@xml:id") "] ";
> }
>
> variablelist:contains-element(title) {
> not-collapsible-head: 1;
> collapsed-content: "";
> margin-left: 4ex; /*Restore original value*/
> }
>
> variablelist:contains-element(title):before {
> content: "";
> }
> ---
> See
> http://www.xmlmind.com/xmleditor/_distrib/doc/csssupport/containing_child.html
>
>
>
> ---
> PS: I've not tested all this but I'm sure that there is no bug here.
> Just the usual pitfall: playing with the computed specificities of the
> CSS rules may be tricky
> (http://www.w3.org/TR/REC-CSS2/cascade.html#specificity).
>
>
>
> Fabian Mandelbaum wrote:
> >
> > We've stumbled upon a rendering issue on
> > collapsed-by-default-and-no-title variablelists: only the first list
> > entry is rendered, not the rest of the entries.
> >
> > The test document and CSS, together with the resulting output is attached.
> >
> > Maybe this is due to the fact that when the collapsible element
> > (variablelist in this case) doesn't have a title, it's not possible to
> > render it properly? (where to put the collapser?)
> >
> > How do you suggest we solve this issue?
> >
> > ------------------------------------------------------------------------
> >
> >
> > ------------------------------------------------------------------------
> >
> > @import url(xxe-config:docbook/css/docbook.css);
> >
> > variablelist {
> > collapsible: yes;
> > not-collapsible-head: 1;
> > collapsed: yes;
> > }
> >
> > variablelist > title:before {
> > content: collapser() " [" label(xpath, "../@xml:id") "] ";
> > }
> >
> >
> > ------------------------------------------------------------------------
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <?xml-stylesheet type="text/css" href="varitest.css"?>
> > <section>
> > <title>Test Section</title>
> >
> > <para>The aim of this test document is to verify the problem of
> > varilist rendering. Only the first entry of a collapsable varilist is
> > displayed if the varilist starts collapsed and has no title.</para>
> >
> > <section>
> > <title>Varilist with title</title>
> >
> > <para>Here we have a varilist with title, collapsed by default, with
> > 3 entries:</para>
> >
> > <variablelist>
> > <title>A varilist title</title>
> >
> > <varlistentry>
> > <term>Entry 1</term>
> >
> > <listitem>
> > <para>Bla, bla, bla</para>
> > </listitem>
> > </varlistentry>
> >
> > <varlistentry>
> > <term>Entry 2</term>
> >
> > <listitem>
> > <para>Bli, bli, bli</para>
> > </listitem>
> > </varlistentry>
> >
> > <varlistentry>
> > <term>Entry 3</term>
> >
> > <listitem>
> > <para>Blo, blo, blo</para>
> > </listitem>
> > </varlistentry>
> > </variablelist>
> > </section>
> >
> > <section>
> > <title>Varilist without title</title>
> >
> > <para>Here we have a varilist without title, collapsed by default,
> > with 3 entries.</para>
> >
> > <variablelist>
> > <varlistentry>
> > <term>Entry 1</term>
> >
> > <listitem>
> > <para>Bla, bla, bla</para>
> > </listitem>
> > </varlistentry>
> >
> > <varlistentry>
> > <term>Entry 2</term>
> >
> > <listitem>
> > <para>Bli, bli, bli</para>
> > </listitem>
> > </varlistentry>
> >
> > <varlistentry>
> > <term>Entry 3</term>
> >
> > <listitem>
> > <para>Blo, blo, blo</para>
> > </listitem>
> > </varlistentry>
> > </variablelist>
> > </section>
> > </section>
> >
>
--
Fabian Mandelbaum
IS Engineer