- From: Johannes Wilm <johanneswilm@vivliostyle.com>
- Date: Sun, 20 Dec 2015 12:57:33 +0100
- To: Brad Kemper <brad.kemper@gmail.com>
- Cc: Florian Rivoal <florian@rivoal.net>, www-style list <www-style@w3.org>, Koji Ishii <kojiishi@gmail.com>, fantasai <fantasai.lists@inkedblade.net>, Rossen Atanassov <ratan@microsoft.com>, Jonathan Kew <jfkthame@gmail.com>, "Elika J. Etemad" <fantasai@inkedblade.net>, "Tab Atkins Jr." <jackalmage@gmail.com>
- Message-ID: <CABkgm-RXW71TKQB4TqkAmDYn6G3u2psnY3vBZwdmDU4LHEL4gg@mail.gmail.com>
On Sun, Dec 20, 2015 at 10:56 AM, Brad Kemper <brad.kemper@gmail.com> wrote: > > On Dec 19, 2015, at 5:30 AM, Johannes Wilm <johanneswilm@vivliostyle.com> > wrote: > > On Sat, Dec 19, 2015 at 12:07 AM, Brad Kemper <brad.kemper@gmail.com> > wrote: > >> >> On Nov 14, 2015, at 1:47 AM, Johannes Wilm <johanneswilm@vivliostyle.com> >> wrote: >> >> Typically, the horizontal direction comes first, and the vertical one >>>> second, when the values represent 2d axes. Given the western-centric >>>> preference in CSS (for initial values, etc), this would translate to inline >>>> direction first and block direction second. >>>> >>> >>> >>> Well, but we need to be able to stack in both directions. >>> >>> >>> Ah, I think I see the problem. 'Right top' puts it in the top right >>> corner, but doesn't say where to put the next 'right top' float. >>> Underneath, or to the left? Is this the issue? >>> >> >> Yes >> >> >>> I think word order is too subtle to use for that, and is an >>> anti-pattern. You instead need another value, either to add as a third part >>> ('wrap-stack: right top inline', if 'wrap-stack' is the property name for >>> creating float-like positioned exclusions) or in a separate property >>> (wrap-stack-direction: inline). >>> >> >> I think that could work. This is another point we should discuss in >> December. >> >> >> So I was thinking: >> >> Supposing the main property name is ‘wrap-stack’ instead of ‘float’, and >> it could take 2 values, one for vertical and one for horizontal (or logical >> equivalents)… >> >> By default, items moved to the corners would stack in the block direction >> away from that corner. So, ‘wrap-stack: start start’ would start in the top >> left corner (if we assume English or other Latin-based written language) >> and subsequent items with that same value would stack downwards. >> > >> This default would be expressed in CSS as an initial value of ‘block’ for >> a property called ‘wrap-stack-direction’ on the containing block. Then if >> you wanted to change it, you would do ‘wrap-stack-direction:inline’, and >> the exclusions would stack in the inline direction away from the corners. >> >> Because the wrap-stack-direction’ is set on the containing block, not the >> floater (“stacker”?), we would avoid weird stair-step arrangements. All >> stacking within a page (or other fragmentainer) would be either horizontal >> or vertical. >> > > The problem is that you don't know how many pages you have, so it's hard > to target them correctly. > > > Is it usually the stacker that determines the layout, or the page? I was > thinking it was the latter, and thus ‘wrap-stack-direction’ could go into > @page. I tend to think more about magazine layouts than book layouts though. > > I’m also beginning to wonder if page grids might handle a lot of the book > publishing use cases. As in, using ‘grid’ property inside of @page. > I think that in magazine layouts, where someone looks over every page and makes sure it is looking fine, it would be determined per page. If one knows the exact dimensions of the page at all times and can do the layouting manually, page floats are probably not the first choice tool to put things where they should go. If one cannot use grids for that, I assume one would use exclusions directly and move them to where they should go. The main advantage of page-floats, that I can see, comes mainly in long-form text (such as print books and ebooks) and when cannot spend the time placing each float manually, especially if the size of a fragment may differ from device to device (or print-out to print-out). In that case one doesn't specify the exact placement of each float, but gives overall rules for the direction in which they float and the stacking direction depends on the float. A float that fills 100% (or 90%) of the width will likely need vertical stacking. A tall float that is meant to fill the entire side will float to the side and stack horizontally. So at least in case of fragments that have the same size, I think it will be the float that will have to decide its stacking direction.
Received on Sunday, 20 December 2015 11:58:09 UTC