- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Tue, 3 Feb 2015 20:31:44 -0800
- To: Axel Dahmen <brille1@hotmail.com>
- Cc: www-style list <www-style@w3.org>
On Sun, Feb 1, 2015 at 6:44 PM, Axel Dahmen <brille1@hotmail.com> wrote:
> Can't use cross_fade() for this purpose, because you cannot apply background
> attributes, like repeat, to cross_fade() images each.
That's correct, but a non-sequitur. I was suggesting cross-fade()
because it lets you create faded-out images. (I think the
Webkit/Blink impl doesn't match the current spec, so it's a little
harder than it should be to do this; I think you have to manually
provide a transparent image, such as with a super simple data: url).
You can then use that faded-out image in background-image as normal.
I suspect you thought I meant using cross-fade() to fade between the
two layer images? If they're the same size/position/etc, you can do
that and it's nice and easy (and you don't even *need* to use
cross-fade() manually; the impls that support it will automatically
use it when you just do an animation/transition between two images).
If they're not the same, then no, that won't work; you need to fade
each image separately with individual cross-fade()s.
> Moreover, I'm missing a transition definition for cross_fade(). From the
> spec I understand that cross_fade() is only be used *within* a transaction.
No. You can use cross-fade() wherever you want; it's just a type of
<image>, and is usable anywhere that <image>s are. What part of the
spec suggests that it can only be used within a transition?
> Thus, I'm missing a definition for transitioning the following two rule
> sets:
>
> div
> {
> background: cross-fade(30% url('a.png'), url('b.png')) center / contain
> no-repeat fixed;
> transition: background 2s linear;
> }
>
> div:hover
> {
> background: cross-fade(60% url('c.png'), url('b.png')) center / contain
> no-repeat fixed;
>
> }
That's defined in the spec.
http://dev.w3.org/csswg/css-images-3/#interpolating-image-combinations
In particular, since these two cross-fade()s do not use the same image
arguments, they're interpolated per standard for <image> - they're
wrapped into another cross-fade() which does the transition.
~TJ
Received on Wednesday, 4 February 2015 04:32:38 UTC