- From: Gérard Talbot <www-style@gtalbot.org>
- Date: Thu, 12 May 2016 14:46:06 -0400
- To: Simon Pieters <simonp@opera.com>
- Cc: "Myles C. Maxfield" <mmaxfield@apple.com>, Koji Ishii <kojii@chromium.org>, W3C www-style mailing list <www-style@w3.org>
Le 2016-05-11 17:09, Simon Pieters a écrit :
> On Tue, 10 May 2016 05:02:33 -0700, Simon Pieters <simonp@opera.com>
> wrote:
>
>> CSS Logical Properties says about margin-block-start et al:
>>
>> [[
>> These properties correspond to the margin-top, margin-bottom,
>> margin-left, and margin-right properties. The mapping depends on the
>> *parent element’s* writing-mode, direction, and text-orientation.
>> ]]
>> https://drafts.csswg.org/css-logical-props/#logical-prop
>>
>> This changed in
>> https://github.com/w3c/csswg-drafts/commit/74786569ab47d3229d39101d53ad38f80fc9b6d7
>> to use the parent element.
>>
>> We also resolved in
>> https://lists.w3.org/Archives/Public/www-style/2015Nov/0267.html to
>> use the parent element's writing mode to determine which side
>> margin-block-start should be.
>>
>> However, this does not match what is implemented in
>> WebKit/Chromium/Gecko today. (I have not tested Edge.)
>>
>> https://lists.w3.org/Archives/Public/www-archive/2016May/att-0001/4186.png
>>
>> http://software.hixie.ch/utilities/js/live-dom-viewer/saved/4186
>>
>> <!DOCTYPE html>
>> <style>
>> div { writing-mode: vertical-lr; -webkit-writing-mode: vertical-lr;
>> margin-block-start: 1em; margin-block-end: 1em; -webkit-margin-before:
>> 1em; -webkit-margin-after: 1em; outline:1px dotted }
>> </style>
>> <div>foo</div>
>> <div>bar</div>
>>
>> Note that the body has horizontal-tb writing-mode. The divs have their
>> margins on the left and right side -- the block-start and block-end
>> sides of the element itself, not that of the parent element.
>>
>> Do we want to maintain the spec as is, and try to get browsers to
>> change, or change the spec to match what is implemented today?
>
> We resolved at the f2f in SF today to change the spec to match
> implementations.
>
> PR to change the spec at https://github.com/w3c/csswg-drafts/pull/109
>
> Resolution at https://logs.csswg.org/irc.w3.org/css/2016-05-11/#e685444
>
Quick basic test:
http://www.gtalbot.org/BrowserBugsSection/CSS3LogicalProps/orthogonal-parent-margin-block-start-0xx.html
>
>> * * *
>>
>> Next issue is how margin collapsing should work in mixed writing modes
>> per the Writing Modes spec:
>>
>> [[
>> The margin collapsing rules apply exactly with the block-start margin
>> substituted for the top margin and the block-end margin substituted
>> for the bottom margin. Similarly the block-start padding and border
>> are substituted for the top padding and border, and the block-end
>> padding and border substituted for the bottom padding and border.
>> Note this means only block-start and block-end margins ever collapse.
>> ]]
>> https://drafts.csswg.org/css-writing-modes-3/#logical-direction-layout
>>
>> This does not seem to consider mixed writing modes. The last paragraph
>> is wrong in mixed writing modes; inline-start and inline-end margins
>> can collapse with another element's block-start or block-end margins
>> (either sibling or parent), in implementations, AFAICT.
>>
>> https://lists.w3.org/Archives/Public/www-archive/2016May/att-0001/4185.png
>>
>> http://software.hixie.ch/utilities/js/live-dom-viewer/saved/4185
>>
>> <!DOCTYPE html>
>> <style>
>> html { writing-mode: vertical-lr; -webkit-writing-mode: vertical-lr }
>> #parent { background-color: green; margin:1em }
>> #horizontal-child { background-color:yellow; margin:1em;
>> writing-mode: horizontal-tb; -webkit-writing-mode: horizontal-tb }
>> #vertical-child { background-color: cyan; margin:1em }
>> </style>
>> <div id=parent>
>> <div id=horizontal-child> horizontal </div>
>> <div id=vertical-child> vertical </div>
>> </div>
>>
>> This is interoperable between WebKit/Chromium/Gecko for this test. The
>> inline-start margin of the horizontal child collapses with the
>> block-end margin of the vertical parent. The inline-end margin of the
>> horizontal child (yellow) collapses with the block-start margin of
>> the vertical child (cyan).
>
> I discussed this briefly with fantasai and we thought this was a
> clarification issue; the spec intends the margins in the container's
> block direction.
Quick basic test:
http://www.gtalbot.org/BrowserBugsSection/CSS3LogicalProps/orthogonal-parent-margin-collapsing-0xx.html
Gérard
Received on Thursday, 12 May 2016 18:46:41 UTC