There are certain properties that are not consistently applied across
elements. If you’ve ever tried to style a <select /> or <input type="file" /> element you have experienced this.
This doesn’t apply only to the visual styles we were pained by in the past, but
also by layout properties such as display: block;.
I am working on a Phonegap project these days so I have a rather narrow range of
rendering engines to support. The layout for most of the app just totally ate it
on Android 4.3. I chocked it up to just being part of “the android
browser”.
Then I switched to using Firefox as my primary browser and the same layout bug
was staring me in the face.
Now I realized it wasn’t just the Android view that was buggy, but perhaps
FireFox as well.
It turns out that this isn’t a bug. There is ambiguity in the spec that certain
elements have certain properties that are implementation-specific. It just so
happened that certain versions of Blink and Webkit allow display: flex on
button’s where as Gecko and other versions of Webkit do not. I am unsure what
Trident thinks of this.