Re: [fxtf-drafts] Not all Filters Should Lead to Containing Blocks on All Fixed/Absolute Descendants (#402)

Blur is more than just a color-change. I'm speaking exclusive about filters that only change the color of elements. In your example CSS, change only the text that says `filter: blur(5px)` to `filter: grayscale(100)`, instead. Zero corruption occurs. Also, then change `filter: grayscale(100)` to `filter: invert(100%)`. Again, no corruption occurs. I'm requesting that exceptions be made when all combined filters are exclusively dedicated to color change. 

Wouldn't it be possible to apply `grayscale` or `invert` to a collection of elements without causing unintended side effects? You've already made an exception for this on the root element, why not let the developer choose whether or not he cares about z-order?

I'll be honest with you, I don't fully understand why it is impossible to achieve proper rendering without the addition containing blocks. In Chromium, I can see that you're able to achieve this just fine as long as the filter is applied to the root element. Why is it so hard to do the same thing for elements that are not root.

The whole idea behind CSS, is to change the style of the structured HTML. If CSS has to change the **structure** of the HTML/DOM, in order to achieve a visual effect, it seems to me that something is being done the wrong way. To me, corrupting the position of fixed/absolute positioned descendant (with containing blocks) seems worst than z-order.

What does a containing block give you that document fragment does not? Couldn't this drawing be done into a document fragment container instead a block-element? If not, why not clone the element that needs to be filtered, add it to the DOM with `visibility:hidden`, draw over it and the switch it out with the original?

As a developer (not a spec writer), I've had to do tricks like this before in order to be more performant in switching out something that took while to render incrementally invisibly between recursive timeouts.

I don't understand this problem thoroughly enough yet. I hope you don't mind me throwing these ideas at you. I'm just hoping something I say triggers and idea where this problem can be solved in a better way.

Thankfully, the root element is an exception, but it doesn't help in Firefox [yet](https://bugzilla.mozilla.org/show_bug.cgi?id=1650522). Seems like grayscale and invert could also be exceptions not requiring containing block.

I'll study your example some more. I must be missing something.





-- 
GitHub Notification of comment by Lonniebiz
Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/402#issuecomment-653926405 using your GitHub account

Received on Sunday, 5 July 2020 19:04:39 UTC