- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 18 Mar 2015 21:40:10 -0700
- To: "www-style@w3.org" <www-style@w3.org>
Been looking into the intrinsic size of multi-column elements. Testcase here: http://fantasai.inkedblade.net/style/tests/multi-col/intrinsic-sizing Here's my suggestions: col-count only min = #cols * min-content [of contents] max = #cols * max-content Implemented by: Firefox, Chrome, IE Rationale: Width of columns is totally flexible, so pick a size that respects min/max-content col-width only min = min(col-width, min-content) max = col-width Implemented by: Firefox, IE Rationale: Widest possible column is column-width*2-ɛ. But if columns happen to be column-width (as requested), then any content outside that overflows and is clipped. It makes sense that the column-width becomes a limit on the content's size contribution. The narrowest possible column is zero. If the min-content is less than the column-width, then we can become that small. col-width + col-count min = min(col-width, min-content) max = col-count * col-width Implemented by: Firefox, IE Rationale: The layout as the container gets narrower (fewer columns) approaches the col-width only case (reduce columns as width reduces in order to keep each column >= col-width), so it makes sense to have the same behavior. The multi-column spec wanted column-width * column-count, when both were defined, to be the preferred width, and the implementations reflect this. Authors would probably prefer that shrink-to-fit sizing landed on this answer for maxed-out cases as well. col-width + height min = used col-count == 1 ? min-content : column-width * used column count max = column-width * used column count Implemented by: Nobody Rationale: Any other answer results in overflow, which no intrinsic size should ever result in. Also this case hits a number of real-world use cases, and they would like the max-content size to be as described. Notes: The original "definition" (goal, really) of max-content was the narrowest size that resulted in the shortest possible height. However, because of the desire of multicol elements to have their column-width respected, it's kindof less obvious what the max-content size ought to be. Chrome factors in the intrinsic size of the contents in a few more cases, e.g. using that as a minimum for the column widths. But since multi-column layout doesn't actually work that way, this isn't a valid approach. (Once the intrinsic size is greater than 2*column-width, the used column width *will* be less than the intrinsic size of the content.) (We could add the intrinsic size keywords to column-width if we want the ability to ensure they are wide enough for their contents. Right now said contents are required to be clipped.) ~fantasai
Received on Thursday, 19 March 2015 04:40:56 UTC