- From: Håkon Wium Lie <howcome@opera.com>
- Date: Tue, 8 Mar 2011 16:38:00 +0100
- To: fantasai <fantasai.lists@inkedblade.net>
- Cc: "www-style@w3.org" <www-style@w3.org>
>From a recent discussion on multicol: > Multicol algorithm > ------------------ > > glazou: howcome's not on the call, but he quoted two of his messages. > alexmog: Which way to go is a matter of philosophy > * glazou loves when philosophy come to CSS :-D > alexmog: There are a few ways to treat a situation when there's no usable > layout that satisfies the constraints. > * fantasai votes for adding more comments to the pseudo-algorithm =) > alexmog: One way is to honor everything that is exactly defined, and just > overflow if necessary. > alexmog: Another is to keep content visible, so users on a phone don't get > a pretty layout, but it's usable. > alexmog: I think that nowhere in CSS do we alter the way we interpret > properties based on whether an overflow is about to happen. > alexmog: If we really care about the end-user and want to show them > content, when the design intent totally fails, the best thing for > the user is to just drop to a single column as soon as possible > when the multicol properties can't be satisfied. > alexmog: So once we shrink down to 0 col width, the next step should be > to drop straight to 1 column. > alexmog: I think these are the only two situations (honor exactly, or > drop to 1 col quickly), and not to try and gradually relax > properties, hovering around unusable states. > Bert: I like the principle, but what's the practical effect of 0-width > columns? > alexmog: I think the page becomes unusable before 0px-wide columns. > alexmog: If the column is too small, the overflow just intrudes into > the column-gap. > alexmog: If there's a single 0-width column, you'll see the overflow > content. With multiple columns you won't. > szilles: I thought we discussed overflow columns just going to the right. > Does that help in this case? > alexmog: Different situation - that's where column width is specified, > but not count. This case is where column-count is specified, > but not width. > szilles: So really, if you want to service multiple screens, setting a > fixed number of columns is a bad idea. > alexmog: Without using media queries, yeah. Setting column-width is > a better approach in general. > TabAtkins_: I think we should just honor things exactly. It can produce > an unusable situation, but that's easy to fix right with > media queries. > szilles: And what happens if I set both -width and -count? > alexmog: Current spec ignores -count in that case. > alexmog: I don't think that this extreme case is a good enough reason > to add column-min-width. > <fantasai> I thought the -count became the maximum column count? > alexmog: So we have two in favor of treating things exactly as specified. > bradk: Me too. > szilles: i could live with it. > glazou: What's the option preferred by howcome? > alexmog: I'd prefer to ask him directly, but I think he was okay with > either option, and just wanted consensus. > szilles: "Treating things exactly" is how the spec is now, right? > alexmog: No, the current spec somewhat relaxes count in some situations. > It would remove 3 lines from the pseudo-algorithm. > > fantasai: column-count sets a maximum number of columns when used with > column-width, so if you set both values you effectively get > a minimum width anyway. > <fantasai> You get your column count combined with a minimum width for > the columns when you set both. > alexmog: So I think we should ask howcome if he agrees with the consensus > here. > ACTION howcome to read the minutes from today and confirm if he agrees > or not with the Multicol algo consensus. > <trackbot> Created ACTION-297 > <fantasai> So if there is not room for all the columns given your > column-width, the algorithm drops columns until -width is honored > <fantasai> Could even recommend that authors set -width when setting -count, > so that the columns don't get too narrow. I interpret the consensus recorded in the minutes to be that 'column-count' should be honored, even if this means that the width of columns go to zero. I agree with the consensus. But I'm not sure how this can be implemented by removing three lines in the pseudo-algorithm. I would implement it by removing line 17 and 20-25, which leaves us with: (16) if (column-width = auto) then (18) N := column-count; (19) W := (available-width - ((N - 1) * column-gap))/N; (26) fi To make sure we don't have negative widths, we should change line 19 to: (19) W := max(0, (available-width - ((N - 1) * column-gap))/N); --- >From the summary of the minutes: > - Tentatively resolved: Remove 3 lines from multicol pseudo-algorithm > that relaxes column-gap when column-count requires too > many columns. Pending Håkon's review. I don't see a discussion about relaxing column-gap in the minutes themselves. I would suggest not trying to relax column-gap. --- Also from the minutes: > fantasai: column-count sets a maximum number of columns when used with > column-width This is correct as per the prose in the description of 'column-count': If both ‘column-width’ and ‘column-count’ have non-auto values, the integer value describes the maximum number of columns. http://dev.w3.org/csswg/css3-multicol/#cc However, it is not correct as per the pseudo-algorithm which specifies, in line 39 that the number of columns is only a function of available-width, column-gap and column-width: N := floor((available-width + column-gap) / (column-width + column-gap)); http://dev.w3.org/csswg/css3-multicol/#pseudo-algorithm I.e., the value of 'column-count' is not taken into account. This is an inconsistency in the spec, it seems. We can resolve it by: (a) removing the prose in the description of 'column-count' or (b) changing line 39 in the pseudo-algorithm to: N := max(column-count, floor((available-width + column-gap) / (column-width + column-gap))) Hmm. -h&kon Håkon Wium Lie CTO °þe®ª howcome@opera.com http://people.opera.com/howcome
Received on Tuesday, 8 March 2011 15:38:48 UTC