- From: David Hyatt <hyatt@apple.com>
- Date: Wed, 18 Mar 2009 18:26:30 -0500
- To: Brad Kemper <brad.kemper@gmail.com>
- Cc: Jonathan Snook <jonathan.snook@gmail.com>, "www-style@w3.org" <www-style@w3.org>
On Mar 18, 2009, at 6:05 PM, Brad Kemper wrote: > On Mar 18, 2009, at 10:25 AM, Jonathan Snook > <jonathan.snook@gmail.com> wrote: > >> >> On 16-Mar-09, at 4:01 PM, Bert Bos wrote: >>> + accidentally overlapping slots is impossible >> >> I don't think we can ever stop people from making mistakes and >> being able to overlap slots is, to me, a handy feature. > > For Web page layout, it seems like more of an edge case, with the > vast majority of layouts consisting of rows and columns that align > with each other. And if the slot can be a positioning container, > then it could always have a div within it to be absolutely > positioned (which would not usually need to be the same height as > the row). If the slot can be relatively positioned (assuming a > separate borders model), that would also allow some types of overlap. > >>> + what is the height and width of slots (your syntax allows multiple >>> conflicting widths and heights, even impossible ones) >> >> This is the case with tables, as well, which is something I tried >> to mimic as I felt it'd be easier for people to grasp (at least for >> those who've done table-based layouts) and easier for implementors >> (since this logic is already in place for tables). > > Agreed. Which is why I think it would me better to extend tables > (especially with features that would be useful to them in other > circumstances anyway, such as colspan and rowspan, and explicit > column counts to generate new anonymous table rows). Yeah I am starting to think this is the way to go also. For example: div { display: table; table-rows: 5 / 1em * 3* 20px 4em; table-columns: 5 / 20px; /* Pattern could repeat */ } You could envision properties like the ones above to go ahead and create a certain number of anonymous rows and columns, and perhaps a "/" addition for specifying some explicit column widths (supporting the same * notation usable in HTML tables for flexing). For spans: .myCell { table-row-span: 2; table-column-span: 3; } Pseudo-elements on the object acting as the table could address the anonymous rows, columns and cells. div::table-row { vertical-align: top; } A functional notation could address specific rows or cells: ::table-row(1) { } ::table-cell(1, 1) { } For source-order independence, you could use a new property to place an object inside one of the anonymous cells. #myContent { table-position: cell(1, 2); } Absolute positioning when the table is the containing block could support rows and cols units to also allow out of flow positioned objects to align with specific cells. #myPositionedObject { position: absolute; left: 3rows; top: 5cols; } I admittedly haven't put a lot of thought into this, but at first glance I don't see anything that would preclude tables from being able to support many of the requirements raised by these other proposals. dave (hyatt@apple.com)
Received on Wednesday, 18 March 2009 23:27:12 UTC