- From: Emilio Cobos Álvarez via GitHub <sysbot+gh@w3.org>
- Date: Thu, 23 Feb 2017 00:31:45 +0000
- To: public-css-archive@w3.org
> Problem with making it "behaves as" is that there are plenty of other properties that care about the box that the element will generate; it's generally very significant whether something generates an inline, block, or no box at all. So we can't just push this to used-value with the "behaves as" language; this is fundamentally a computed-value issue. While I see your point, knowing both Blink's and Gecko's implementation, this is sort of complex to implement at computed value time. All the logic to decide whether an element generates a box resides on the actual box construction step, with the notable exception of `display: none`. Gecko is rewriting the style engine to run ahead of box construction (not at the same time). Blink is doing [a similar effort](https://groups.google.com/a/chromium.org/forum/#!topic/style-dev/I7bSL5RsuV0) on its engine. This will mean having to keep track of whether an element generates a box when its specified value is `contents` in two different places: at style resolution time, and at layout tree construction time, which requires significant changes in both engines as far as I can tell (specially in Gecko, for the way style sharing works there I think). How painful or difficult those changes are I don't know ahead of time, tbh. > So impls either need to bite the bullet and allow this computed value to depend on form-control-ness (as, according to François, Firefox already does?). Firefox doesn't. For a quick example, the following logs `contents`. The work in progress Blink implementation doesn't either (except for SVG elements, which I need to clean up depending on this resolution). ```html <!doctype html> <button style="display: contents">Foo</button> <script> console.log(getComputedStyle(document.querySelector('button')).display) </script> ``` > or shoot for a simpler resolution, like making display:contents suppress the box like normal (and, as a side-effect of being a form control, and thus half-replaced, also suppress its children's boxes, like display:none). This is definitely simpler to implement, though I'm not sure all the people would be on board with this. @MatsPalmgren or @rune-opera may have opinions here? -- GitHub Notification of comment by emilio Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/540#issuecomment-281851371 using your GitHub account
Received on Thursday, 23 February 2017 00:31:53 UTC