- From: Simon Pieters <simonp@opera.com>
- Date: Fri, 27 Sep 2013 10:18:44 +0200
- To: "Henrik Andersson" <henke@henke37.cjb.net>, "Robert O'Callahan" <robert@ocallahan.org>
- Cc: "Dirk Schulze" <dschulze@adobe.com>, "www-style list" <www-style@w3.org>
On Fri, 27 Sep 2013 00:37:32 +0200, Robert O'Callahan
<robert@ocallahan.org> wrote:
> On Fri, Sep 27, 2013 at 9:44 AM, Henrik Andersson
> <henke@henke37.cjb.net>wrote:
>
>> My point is how the width and right properties change when left and x
>> are set. X changes right, left changes width.
>>
>> One models the moveable rectangle and the other models the stretchy
>> rectangle.
>>
>
> I think making setting of x/y behave differently from top/left is just
> super confusing. Imagine trying to explain to authors with a straight
> face
> why "x" is different from "left". It would be simpler to make them pure
> aliases and pick a consistent mutation behavior.
So we have three options:
(a) x and left change width.
(b) x and left change right.
(c) x changes right, left changes width.
For (a), the following code won't do what it looks like it does:
function resizeAndRepositionRect(rect, props) {
rect.width = props.width;
rect.height = props.height;
rect.x = props.x;
rect.y = props.y;
}
The width will be different from what it was set to.
Similarly for (b):
function setEdgesForRect(rect, props) {
rect.top = props.top;
rect.right = props.right;
rect.bottom = props.bottom;
rect.left = props.left;
}
Here, right won't be what it was set to.
(c) lets authors either work with x/y/width/height or
top/right/bottom/left and get the values they were set to.
I guess there's a fourth option:
(d) Make top/right/bottom/left readonly and only allow mutating
x/y/width/height.
Personally I think we shouldn't do (a) or (b), and I don't think (c) is
that confusing. I'm OK with either (c) or (d).
--
Simon Pieters
Opera Software
Received on Friday, 27 September 2013 08:19:17 UTC