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

Re: Fwd: Proposal for "overflow:clip" for stronger painting isolation

From: <intelligentdesigner@timgallantcreative.com>
Date: Fri, 20 Sep 2013 14:40:12 -0500
Message-ID: <5823F5E1B2FB465DBB99E36D5CE308AB@superOffice>
To: "Tab Atkins Jr." <jackalmage@gmail.com>, "www-style list" <www-style@w3.org>
Could you clarify what this accomplishes beyond the existing CSS clip 
property?

Tim Gallant

-----Original Message----- 
From: Tab Atkins Jr.
Sent: Friday, September 20, 2013 2:03 PM
To: www-style list
Subject: Fwd: Proposal for "overflow:clip" for stronger painting isolation

I've been talking with out layout/compositor people here on Blink for
a while now, and one of the things that has shaken out as a big helper
in getting things to work *fast* is having strong, guaranteed methods
to isolate parts of the page.

In particular, isolating the painting of an element seems like a big
win - having some way to guarantee that the element can be
hard-clipped to its boundary without losing anything important.
overflow:hidden doesn't *quite* do this - abspos and fixpos elements
can escape the bounds of the element.

As well, overflow:hidden still allows scrolling into the hidden area,
through JS.  This isn't an edge-case - this technique is used by a lot
of JS libraries.  This means that we can't depend on the element only
painting its visible area - we have to speculatively paint further, so
we can scroll smoothly at a moment's notice.

To get around both of these issues and provide stronger optimization
guarantees to the browser, I suggest we add a "clip" or "contained"
value to overflow.  This does a strong clipping - nothing inside the
element can paint outside the element's rect.

It also acts as a positioning root for abspos inside the element, and
kills fixpos, reverting it to abspos with the element as its
positioning root.

The value also completely prevents scrolling - the scrollWidth/Height
of the element is its visible width/height.

Thoughts?

~TJ 
Received on Friday, 20 September 2013 19:58:25 UTC

This archive was generated by hypermail 2.3.1 : Friday, 20 September 2013 19:58:25 UTC