This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 27931 - Override 'flex' and 'transform' styling
Summary: Override 'flex' and 'transform' styling
Status: RESOLVED FIXED
Alias: None
Product: WebAppsWG
Classification: Unclassified
Component: Fullscreen (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Anne
QA Contact: public-webapps-bugzilla
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-30 14:27 UTC by Anne
Modified: 2015-03-17 09:45 UTC (History)
7 users (show)

See Also:


Attachments

Description Anne 2015-01-30 14:27:35 UTC
The conclusion from https://lists.w3.org/Archives/Public/www-style/2014Nov/thread.html#msg287 seems to be that the rendering section should override 'flex' and 'transform'. Presumably as follows:

  *|*:not(:root):fullscreen {
    flex:none !important;
    transform:none !important;
  }

If anyone disagrees with this now would be a good time to speak up.
Comment 1 Philip Jägenstedt 2015-01-30 17:22:20 UTC
Sounds great, one less non-standard thing about Chromium's fullscreen support to worry about!
Comment 3 Philip Jägenstedt 2015-01-30 17:36:48 UTC
So apparently Blink/WebKit have flex:1 !important, from this change:
https://trac.webkit.org/changeset/83654

flex:none means 0 0 auto says http://dev.w3.org/csswg/css-flexbox/#flex-property

I can't tell from the WebKit bug <https://bugs.webkit.org/show_bug.cgi?id=58291> what the original problematic CSS was.

When does flex:1 and flex:none result in different rendering? /me is clueless
Comment 4 Philip Jägenstedt 2015-02-12 08:51:55 UTC
I've asked Tab to clue us in about flexbox.
Comment 5 Philip Jägenstedt 2015-03-03 07:09:08 UTC
No reply from Tab. Here's a related Gecko bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1099052
Comment 6 Philip Jägenstedt 2015-03-06 02:47:56 UTC
In https://codereview.chromium.org/974783002/ I've updated our style sheet to look more like the spec and came to the conclusion that the flex override doesn't matter when the  fullscreen element is forced to fill the viewport by other style.

What remains, although prefixed, is:

:not(:root):fullscreen {
    transform: none !important;
}

This should be uncontroversial, so make it so :)
Comment 7 Tab Atkins Jr. 2015-03-13 20:55:39 UTC
(In reply to Philip Jägenstedt from comment #5)
> No reply from Tab. Here's a related Gecko bug:
> https://bugzilla.mozilla.org/show_bug.cgi?id=1099052

Whoops, I missed that email because it came in while I was in Sydney; my email glut afterwards was horrific and still hasn't been fully processed.

The flex difference is because the fullscreen element is placed in an anonymous flexbox that fills the screen.  "none" means the element stays its natural size, while "1" means it'll stretch to fill the screen if possible (and importantly, *shrink* to fit in the screen if oversized).
Comment 8 Philip Jägenstedt 2015-03-15 03:55:10 UTC
(In reply to Tab Atkins Jr. from comment #7)
> (In reply to Philip Jägenstedt from comment #5)
> > No reply from Tab. Here's a related Gecko bug:
> > https://bugzilla.mozilla.org/show_bug.cgi?id=1099052
> 
> Whoops, I missed that email because it came in while I was in Sydney; my
> email glut afterwards was horrific and still hasn't been fully processed.
> 
> The flex difference is because the fullscreen element is placed in an
> anonymous flexbox that fills the screen.  "none" means the element stays its
> natural size, while "1" means it'll stretch to fill the screen if possible
> (and importantly, *shrink* to fit in the screen if oversized).

Does this matter when the fullscreen element is also has !important UA style sheet rules for top, right, bottom, left, width, min-width, max-width, height, min-height and max-height to make it fill the screen? In 10 minutes of tinkering I couldn't find a case where flex could have any influence, but I could very well be mistaken.
Comment 9 Tab Atkins Jr. 2015-03-16 23:06:43 UTC
Oh, sorry, I was thinking of <dialog>, not fullscreen.

No, there shouldn't be any reason to mess with 'flex' on a fullscreen element.  It's not a flex item (being fixpos guarantees that, even if it's a child of a flex container), so 'flex' does nothing at all, regardless of what value it takes.
Comment 10 Philip Jägenstedt 2015-03-17 02:46:43 UTC
Awesome, thanks Tab!

Just to get things going: https://github.com/whatwg/fullscreen/pull/1