- From: Brad Kemper <brkemper.comcast@gmail.com>
- Date: Thu, 30 Oct 2008 00:57:55 -0700
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- Cc: www-style@w3.org
On Oct 29, 2008, at 11:52 PM, Boris Zbarsky wrote: > Brad Kemper wrote: >> Actually, it would be good to have both the caption and the column >> headers visible whenever and wherever there are table rows visible. > > I've wished for this a few times, but see below... > >> keep the caption and/or thead immobile once you scrolled the page >> enough > > So if the caption is below the table and the thead is above and the > table is taller than the screen, would the caption render on top of > other parts of the table? I think those sort of details could be worked out and specified in a way that would not preclude moving forward with the idea. In fact, if you take a look at what Apple did with the Contact list in the iPhone, there is something in there that is already very close: There are dividers in the long list for each letter of the alphabet, and they stay visible for as long as contacts starting with that letter are visible. IMO, the answer to your question would be "no", it would not initially be rendered on top of other parts of the table. The way I see that situation, is that initially the caption or thead with that property value would start out in the same position as if they were position:static, and you would only see a difference when the top of the table started to scroll in or out of view. If scrolling up, it would be elements at the top that would stop scrolling with the page. If scrolling down, it would be elements at the bottom (such as your caption example) that would stop scrolling with the page (or other scrollable container; it would not have to be a page). This in essence means that there could be situations (with tall TBODYs, for instance) where your example would result in a caption scrolling into view from the bottom, but not scrolling out until it touched the bottom of the immobilized THEAD. That is not too different from what happens in the iPhone example, when the next letter divider moves up the screen to meet the last one. If both do not fit at the same time, then the one on top shows and the bottom one doesn't (same as today on the initial rendering of such a table that doesn't all fit in the scroll area). It might be simpler to say that this only effect table elements when they scroll in and out of view at the top or left edges of the scrollable area (I've only seen it work on the top edge on the iPhone). > Also, I assume the whole thing should scroll on horizontal scroll? > Or should <th> elements in the first column not scroll then? That is a possibility. I admit to mainly thinking vertically of this vertically in terms of THEAD or CAPTION, that ordinarily span the full width of the table. But I can conceive of THs in the first column becoming immobile instead of scrolling horizontally out of view. > I should also note that something like this would also be possible > if table row groups could be made scrollable. I agree that would also be cool, and has its own problems to work out too. But with what I am envisioning would allow the tables to be their full height, without additional scroll bars needed beyond what are already there. > > Thus, this property would then be >> used to keep captions and/or theads visible on paged media too, as >> long as there would also be rows of the same table to be shown on >> that page. > > How does this work if the thead or caption is taller than a page? Yes, we would need to decide what happens in that case. My initial thought is that it would not be a very good design choice to use that property value for theads or captions that are likely to be taller than a page. But I think that, just as in less extreme cases where enough scrolling does push it off screen (when the bottom of the table reaches the bottom of the thead), SOMETHING would eventually push it up and off. I think in this case it should be the rest of the table that pushes it out of the way. In other words, if the THEAD with "position:persist" (or "position:fixed-in-table" or whatever we call it) is taller that the scrollable container it is in, then it should really at that point be no different that position:static (this would be an exception to the rule of how it normally would work). Otherwise, you would never see the table body. > > > -Boris >
Received on Thursday, 30 October 2008 07:58:32 UTC