[whatwg] Alignment of empty buttons
Ian Hickson
ian at hixie.ch
Sun Nov 24 21:59:15 PST 2013
On Sun, 24 Nov 2013, Boris Zbarsky wrote:
> On 11/24/13 10:27 PM, Ian Hickson wrote:
> > (That's non-conforming, as far as I can tell, for what it's worth. The
> > HTML spec says you're supposed to render elements according to what
> > they represent, and <option> elements represent an option in a select,
> > with a label, value, etc; children elements have no bearing on all
> > this.)
>
> I realize that's your opinion and what you've put in the spec for now,
> yes.
Putting it that way makes it sound like what the spec says here is
controversial, but really, it's not. HTML has never supported other
elements in <option>s either at the conformance level or the parser level
(it's one of the few elements with dedicated rules in the parser), the
backwards-compatible rendering requires blatently non-CSS behaviour like
hiding text nodes, making <select>s match platform conventions is
incompatible with making it stylable at this level given how varied the
platforms are, etc.
If we wanted to make <option> stylable, we'd have to define how it worked,
and that would be non-trivial.
> > > Some do not. How are they not replaced elements in the latter?
> >
> > I don't know what it would mean for them to be replaced elements. The
> > <select> is a replaced element, but its contents have no bearing on
> > the CSS spec at all.
>
> Why not?
>
> Seriously, how is this different from <svg> being a replaced element
> with a <foreignObject> inside, apart from arbitrarily deciding that it
> should be different?
It's more like <svg:g>. The CSS model just doesn't apply. Even in Firefox,
it's not really CSS that's working there. It's some weird proprietary
variant. I mean, as you've pointed out, child nodes of the <select> that
aren't <option> or <optgroup> are mysteriously hidden, but also, the
<option> elements obey some values of 'display' but don't obey e.g.
'position' or 'float'; 'white-space' doesn't seem to work right in a
<select> or <option>; the height of the <select> seems to be based in some
weird way on the height of some of the <option>s... in the drop-down mode,
it's even worse, with the text not lining up with the widget, and so on.
(By the way, in testing this, I discovered <option label> isn't supported
in Firefox. Also, the default styles for <select> drop-downs on Mac don't
seem to match platform convensiots. Also, I don't know what's going on in
this mess of a test, but clicking the drop-down widget causes Firefox to
peg the CPU on my machine on Firefox 26:
http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=2658
HTH. Also ::first-line on a display:table-row doesn't seem to be work,
though I couldn't tell if that was per-spec or not. It doesn't seem to
work for regular <div>s either.)
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list