W3C home > Mailing lists > Public > www-style@w3.org > March 2013

Re: [css-positioning]? Handling <dialog> positioning - an update

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Tue, 26 Mar 2013 11:36:19 -0700
Message-ID: <CAAWBYDC4mOBWF1UQLALSKROqtUbSkKBiR3z20BTqPt2hVHQaXg@mail.gmail.com>
To: Sylvain Galineau <galineau@adobe.com>
Cc: www-style list <www-style@w3.org>
On Tue, Mar 26, 2013 at 11:08 AM, Sylvain Galineau <galineau@adobe.com> wrote:
> On 3/26/13 10:27 AM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote:
>>On Mon, Mar 25, 2013 at 8:42 PM, Sylvain Galineau <galineau@adobe.com>
>>wrote:
>>> On 3/25/13 8:15 PM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote:
>>>>On Mon, Mar 25, 2013 at 7:02 PM, Sylvain Galineau <galineau@adobe.com>
>>>>wrote:
>>>>> On 3/25/13 5:21 PM, "Tab Atkins Jr." <jackalmage@gmail.com> wrote:
>>>>>>1. The introduction of a "top layer" for positioned elements. Anything
>>>>>>in the top layer is removed from its containing blocks (it's
>>>>>>positioned as if it were a sibling of the root), and is z-ordered
>>>>>>above anything that's not in the top level.  Within this top level,
>>>>>>z-order is resolved as normal.
>>>>>
>>>>> Can a <dialog> spawn another <dialog>?
>>>>
>>>>Yes, definitely.
>>>
>>> Which implies some hierarchy of top layers? In particular, with z-index
>>> relative
>>> to whatever top-layer is currently topmost?
>>
>>No, why would it?  You can just use normal ordering to resolve this
>>sufficiently.
>
> If dialog 1 spawns dialog 2 and both give some element the same z-index
> I'd assume the latter to be relative to the top layer created by dialog 2
> I.e. these things stack up. (Note: I assume these are modal dialogs)

This can be solved just by making <dialog>s be stacking contexts,
which I think is a pretty sane thing to do.  No need for separate
"layers".

>>>>I mean the CSS Animations spec, and I'm referring to the way in which
>>>>animations aren't started until the element generates a box, and are
>>>>stopped and reset from the beginning when an element loses and then
>>>>regains a box.
>>>
>>> You seem to be referring only to the display:none cases; animations can
>>> be applied to existing boxes without no loss/'regain' of a render box
>>> e.g. you can just change animation-name or set animation-name to a value
>>> different from its initial 'none' value.
>>
>>You're mixing up the terms "applied to" and "start".  I'm referring to
>>the latter.  The animation itself, as in its timer that determines
>>what precise effect it has at a given moment, starts at 0 when the
>>element gains a box, and restarts from 0 if the element loses and
>>regains.
>
> No, I am not mixing up anything. Animation start is, as defined today,
> unrelated to boxes being 'gained' or 'lost', even though it may appear
> that way in the display:none sub-case.
>
>>
>>Yes, there are other triggers that will start/restart an animation
>>while the element has a box.
>
> Indeed. And those triggers are the more common use-case so far.
>
>>But I don't think that display:none is
>>defined to force things into computing to their initial value, is it?
>>Thus, there's an implicit extra trigger that pays attention to when
>>the box is generated (perhaps in the form of when the property becomes
>>"relevant").
>
> My point is that this is undefined.We have resolved that animations stop
> when you apply display:none and start again when you get out of it, but
> we have never (afaik) defined the underlying trigger as being different
> from when a regular change to animation-name's value on a display:block
> element. Coming out of display:none, you'll definitely want to make sure
> all the other properties of the element are in a current state before you
> start animating; whether this style computation always occurs as a result
> of leaving display:none is, afaik, undefined and up to UAs, just like
> everything related to when properties compute.
>
> My main point is that whatever you think Animations do that you can depend
> on is not specified anywhere at the moment.

Okay, I think I might get what our disconnect is.  Are you trying to
say that I'm overgeneralizing when I take the spec text which refers
specifically to display:none and generalize it to the concept of the
element not generating a box?

If so, then I argue that my generalization is valid, as display:none
is the only way to prevent an element from generating a box, and I
assume that any future ways we may create to prevent an element from
generating a box will act the same.

> I also know of implementations
> that substantially disagree with your assumption, so beware. And, maybe,
> file an issue against css3-animations.

Can you give an example?  Specifically, I'm asserting two things:

1. If an element is currently display:none, and you set the animation
properties on it, then when the element's display becomes non-none,
the animation will start from t=0.
2. If an element is currently running an animation, and you set it to
display:none and then back to non-none (flushing the styles in
between, obviously, so no optimizations come into effect that would
discard the first set), the animation will restart from t=0.

If any implementations are differing from this, I believe they're
violating the spec, and I don't think anyone *did* differ from this
when we made the decision that animations stopped during display:none.

If you thought I was asserting something else, then please explain
what you thought I was asserting, which you thought you could
demonstrate a violation of.

~TJ
Received on Tuesday, 26 March 2013 18:37:06 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:37:06 GMT