Re: [css3-multicol] z-order of column-rule: below or above border?

Håkon Wium Lie <howcome@opera.com> writes:

> Morten Stenshorne wrote:
>
>  > > It seems that IE11 behaves like FF/Op/Ch. AntennaHouse 6.1.6.12100 does the same,
>  > > while Prince 9.0 puts the border on top.
>  > >
>  > > Based on this, I suggest changing:
>  > >
>  > >   Column rules are painted in the inline content layer, but below all
>  > >   inline content inside the multicol element.
>  > >
>  > > to 
>  > >
>  > >   Column rules are painted in the inline content layer; below all
>  > >   inline content inside the multicol element, but above the border of
>  > >   the multicol element.
>  > 
>  > Putting the rule so high seems wrong and unnecessary to me, and I also
>  > disagree with what the current ED says:
>  > 
>  >     http://dev.w3.org/csswg/css-multicol/#column-gaps-and-rules
>  > 
>  >     Column rules are painted in the inline content layer, but below all
>  >     inline content inside the multicol element.
>  > 
>  > Why draw it so far apart from the multicol's border? Why not draw it
>  > just after the border?
>
> That works for me. Could you suggest a text?

The current CR says:

    Column rules are painted just above the background of the multicol
    element.

It should probably have said:

    Column rules are painted just above the border of the multicol
    element.

In addition we might want to say something about scrolling, if the
multicol container is scrollable. While the background and border of the
multicol itself obviously don't scroll, the rules have to scroll along
with the columns. This was actually a bug in Blink until recently [1].

Something like this, maybe:

    Column rules are painted just above the border of the multicol
    element. For scrollable multicol elements, note that while the
    border and background of the multicol element obviously aren't
    scrolled, the rules need to scroll along with the columns.

[1] https://code.google.com/p/chromium/issues/detail?id=236315

Morten

>  > This:
>  > 
>  >     <style>
>  >         .mc {
>  >             -moz-columns:2;
>  >             -moz-column-rule:30em solid black;
>  >             -webkit-columns:2;
>  >             -webkit-column-rule:30em solid black;
>  >             columns:2;
>  >             column-rule:30em solid black;
>  >         }
>  >     </style>
>  >     <body>
>  >         <div class="mc" style="width:20em; border:1em solid yellow;">
>  >             <div style="background:lime;">
>  >                 This text should be visible, on a lime background.
>  >             </div>
>  >             <br><br><br><br><br><br><br><br><br><br><br><br><br>
>  >         </div>
>  >     </body>
>  > 
>  > passes in Gecko, WebKit, Presto and Trident. Why change that? The
>  > rendering is identical in Gecko, WebKit and Presto (multicol border
>  > below, then multicol rule, then child block background, then
>  > text). Trident, on the other hand, paints the rule before the border,
>  > otherwise identical.
>
> Rossan, you have pushed for the current workding -- could you commment?

-- 
---- Morten Stenshorne, developer, Opera Software ASA ----
------------------ http://www.opera.com/ -----------------

Received on Monday, 7 October 2013 09:14:51 UTC