- From: Ian Hickson <ian@hixie.ch>
- Date: Sat, 31 Aug 2002 19:41:27 +0000 (GMT)
- To: fantasai <fantasai@escape.com>
- Cc: "www-style@w3.org" <www-style@w3.org>
On Tue, 20 Aug 2002, fantasai wrote:
>
> ua.css -
>
> ul {
> margin-start: 2em;
> }
>
> author.css -
>
> ul {
> margin-left: 4em;
> }
>
> list.html -
>
> <title>A List</title>
> <link type="text/css" rel="stylesheet" href="author.css">
> <ul>
> <li>apples
> <li>milk
> <li>bread
> <li>peanut butter
> </ul>
>
>
> Reasonable case, no? The author is going to be a bit surprised at the
> result, though.
During the CSSWG meeting last week, David Baron came up with an ingenious
scheme to solve this. However, the point is pretty moot since, for now, it
has been decided to drop the BASE (before/after/start/end) properties to
avoid property glut. (To convert CSS2.1 to BASE would require the addition
of 34 new properties and 26 new keywords, and CSS3 makes this even worse.)
The theory goes that in practice, stylesheets written for ltr documents
don't Just Work for rtl documents as well.
FWIW, David's proposal was:
margin-left: 2em sets
margin-left-value to 2em
margin-tb-lr-left-source to left
margin-tb-rl-left-source to left
margin-bt-lr-left-source to left
margin-bt-rl-left-source to left
margin-lr-tb-left-source to left
margin-rl-tb-left-source to left
margin-lr-bt-left-source to left
margin-rl-bt-left-source to left
margin-start: 4em sets
margin-start-value to 4em
margin-tb-lr-left-source to start
margin-tb-rl-right-source to start
margin-bt-lr-left-source to start
margin-bt-rl-right-source to start
margin-lr-tb-top-source to start
margin-rl-tb-top-source to start
margin-lr-bt-bottom-source to start
margin-rl-bt-bottom-source to start
Then to determine what margin value to use for the left side, you look
at the relevant *-source property, which would be decided based on the
'writing-mode' property (a shorthand which also sets 'direction'). For
example, in top-to-bottom left-to-right text like English, you look at
the 'margin-tb-lr-left-source' property, and find it is set to 'start'
(since the 'margin-start' rule overrode the 'margin-left' rule) and so
you use 'margin-start-value'. In right-to-left bottom-to-top text, you
would look at 'margin-rl-tb-left-source', and find that that is set to
'left' so you use 'margin-left-value'.
It's a remarkably neat scheme.
--
Ian Hickson )\._.,--....,'``. fL
"meow" /, _.. \ _\ ;`._ ,.
http://index.hixie.ch/ `._.-(,_..'--(,_..'`-.;.'
Received on Saturday, 31 August 2002 15:41:29 UTC