Re: Controling structure with CSS

> Unfortunately (the awkward bit) this breaks inheritance (the inheritance
> has to be done in the original location, so things won't look like they
> belong where they were moved to). And it can require an excessive number
> of pseudo-elements.

I thought the amount of psuedo-elements was going to be limited in CSS3?

> For example, this is the mess you would need to wrap related <dt>s and
> <dd>s into one box with a border using this:
> 
>    dt { content: none; }
>    dt::after { content: contents; flow: terms; }
>    dd { flow: definitions; }
>    dd + dt, dl::after {
>      display: block;
>      content: flow(terms) flow(definitions);
>      border: solid;
>    }
> 
> I wish there was a simpler way.

In my opinion, there are two problem with this example:

  1. I don't understand it directly.
  2. I'm not an average CSS user.

By one, CSS is supposed to be a simple syntax which can be easily 
learned. This certainly isn't an easy example. Why does the first rule, 
'dt{content:none;}' exist? From where I see it, it is overwritten by the 
fourth declaration, 'dd + dt'. Further, how what exactly are the 
contents of 'dt::after', the contents of the DT element? (Doesn't make 
sense to me, you could have applied 'flow:terms;' directly to DT if that 
was the case.)

The fourth declaration seems to be a bit strange, you apply the same 
content to multple elements?

And since CSS 2.1 is already very difficult to understand for a lot of 
people I would suggest not to include this in the final draft. Maybe 
css3-positioning can come up with something better for displaying the 
document in a different "order" than one would expect from the structure.

By point two, I think I am, since I, most of the time, answer question 
at forums, I don't ask.


-- 
  Anne van Kesteren
  <http://annevankesteren.nl/>

Received on Monday, 19 April 2004 02:05:37 UTC