Re: [CSS21] Contradiction in the spec with auto-offset fixed-position elements

Andrew Fedoniouk wrote:
> The viewport is using  background attributes of <body> element to fill its 
> background.

Only for HTML.  CSS applies to other languages too.

> It would be natural if viewport's scrollbars also will reflect  body scroll 
> position.

In fact, there has been discussion about making that viewport reflect the scroll 
state of the root element.  That's what several UAs implement.

> <root>
>   <header1>...</header1>
>   <header2>...</header2>
>   <body overflow=auto width=100%% height=100%%>
>      ... body content....

This makes the "body"-ness of <body> inherent to the markup language.  That's 
not something that's up to CSS.

> Let's <body> be a real body - body of the page - its content.

Again, CSS is not in the business of creating new markup languages.  The goal is 
to take existing markup and style it.

> I think that having stuff in natural flow is always better then to use any 
> kind of absolute positioning.

You never answered my question about how you'd create the layout on 
http://www.w3.org/Style/CSS/

> I mean that  right margin of body (content) clipping area should follow 
> width of right side bar.

This can easily be done by setting max and min widths and setting overflow on 
things.

The other option is to do what tables currently do and to overflow the viewport 
altogether in the horizontal direction.  CSS doesn't provide facilities to do 
this, true.

> As you know straightforward implementation of overflow:auto when size of 
> content
> is close to the size of viewport is potentially oscillating function.

True.  I'm not sure how your proposal helps that, however.  Removal of the 
scrollbars will resize the viewport, no?  Unless you keep them around all the 
time...

> In fact this 'fixed' does change the content model dramaticly.

How so?  The DOM is the same.  That's what the words "content model" mean.  If 
you mean "formatting model", then yes, the CSS changes it.  That's the only way 
to get a different rendering that differs this drastically without changing the 
content model.

> It does not break any existing rules.

Except for the rule about being able to apply CSS without changing your content.

> <header1  position=fixed top=0px height=40px />
> <header2  position=fixed top=20px height=40px />
> <content>
> .....
> </content>
> 
> What is top bound of the <content> scrollable area supposed to be?

Top of viewport, since the positioned elements are out of flow.  But you can, 
naturally, give it a top margin.  If you give it one sized in em, it'll even 
scale nicely with the text.

-Boris

Received on Wednesday, 10 November 2004 02:49:00 UTC