- From: Daniel Tan <lists@novalistic.com>
- Date: Tue, 18 Mar 2014 01:00:57 +0800
- To: www-style@w3.org
According to the specification for ‘transition-property’:
> If one of the identifiers listed is not a recognized property name or
> is not an animatable property, the implementation must still start
> transitions on the animatable properties in the list using the
> duration, delay, and timing function at their respective indices in
> the lists for ‘transition-duration’, ‘transition-delay’, and
> ‘transition-timing-function’. In other words, unrecognized or
> non-animatable properties must be kept in the list to preserve the
> matching of indices.
This means that the following rule:
transition-property: unknown, color;
transition-duration: 1s, 2s;
transition-timing-function: linear, ease-in-out;
Is treated as though only the ‘color 2s ease-in-out’ transition applies
(in browsers that know how to transition color, of course).
The spec does not seem to account for when none of the properties listed
in ‘transition-property’ are animatable, such as in any of these
declarations:
transition-property: background-image;
transition-property: unknown;
transition-property: unknown, another-unknown;
Are we to assume that these would be functionally equivalent to
‘transition-property: none’? Or is there a special case to be made that
hasn't been specified?
I ask this because, in researching the answer to the following Stack
Overflow question:
http://stackoverflow.com/questions/22457222/ie10-11-uses-transform-webkit-transform
I found that with the following declaration:
transition: -webkit-transform 1s, transform 1s;
Firefox and IE10+ apply the transition defined for the ‘transform’
property and safely ignore the one for ‘-webkit-transform’, as required
by the spec. I would expect Chrome to similarly transition
‘-webkit-transform’ and ignore ‘transform’, however it seems to drop the
declaration entirely. I suppose I will have to find out if this has been
reported yet, since it looks clearly like a violation of the spec.
Note that Chrome is able to handle the transition just fine if I specify
a property that, while not animatable, is at least recognized:
transition: -webkit-transform 1s, background-image 1s;
Given that prefixes still see prevalent use today, this may also be a
cause for concern when listing several declarations for various prefixes
of ‘transition’ and/or other properties, as cascade resolution may lead
to unexpected behavior as demonstrated in the question I link to.
If the behavior is intentional (i.e. having no animatable properties
being equivalent to specifying ‘none’ rather than being flat-out
invalid), it might be worth clarifying anyway, as it does not seem too
clear to me at the moment.
--
Daniel Tan
NOVALISTIC
<http://NOVALISTIC.com>
Received on Monday, 17 March 2014 17:01:30 UTC