W3C home > Mailing lists > Public > www-style@w3.org > October 2010

RE: [css3-writing-modes] a third option for implementing logical properties

From: Koji Ishii <kojiishi@gluesoft.co.jp>
Date: Mon, 25 Oct 2010 03:57:52 -0400
To: Andrew Fedoniouk <news@terrainformatica.com>, David Hyatt <hyatt@apple.com>, "MURATA Makoto (FAMILY Given)" <eb2m-mrt@asahi-net.or.jp>
CC: "www-style@w3.org" <www-style@w3.org>
Message-ID: <A592E245B36A8949BDB0A302B375FB4E0AA3634147@MAILR001.mail.lan>
> As an implementer I am dealing with different writing systems including
> Japanese ttb schemes. Frequently we have screens with the mix of different
> writing directions. It is very hard to think about such layouts using
> start/end/before/after vocabulary.

As I said, it depends on what kind of publishing you're creating. If you're creating visual magazines like Vogue, physical directions can be easier. If you're dealing with more text-oriented publishing like novels, like the one you can find in today's iBooks (Peter Rabbit or Alice for example; they have pictures in it), start/end/before/after make complete sense.

The IEC 62448 format has been in the market since 2001, although it was standardized in 2009. More than 70M devices were sold, and more than 100K books were published in this format so far. As I said before, the format supports logical only. From the spec:
> B.4.6.2.4 Text body <text_body>
> top: Defines the size of the left margin of the paragraph (top
> margin in case the writing direction is vertical).
Well, they started only vertical text flow and added horizontal later, so the property name is "top"--it's funny--but you can see from its description that it's defined to be logical. They don't have corresponding physical properties, but there has been no problem to publish 100K books.

It may be true that because they don't have published visual magazines in the format yet. What we're discussing here is to support both visual magazines and novels, supporting both physical and logical would be the best answer.


> To be honest vertical writing flow is not that complex.
> In my case when needed it is defined simply as:
> 
> div:ttb-rtl
> {
>    direction: ttb; /* text flow */
>    flow: horizontal-rtl; /* block flow */ }

It's easy because all the glyph substitution, changing underline directions, changing emphasis marks, changing ruby positions, and so forth are done under the hood. It's easy because you're talking only about looking it vertical and not considering reasonable formatting for vertical document. To make it reasonable, along with all the changes mentioned above, you must also swap margins and borders, and that's what we're discussing here.


> Sorry, mixed up padding-after with padding-end(?).
> 'start' and 'before' are actually bad names for such things.
> In HTML 'start' usually is a document start position.
> HTML itself is a "tape" having start and end.
> 
> So my question above shall be read as:
> 
> p { padding-end:30px; }
> 
> with this markup:
> 
> <body dir="ltr">
>    <div dir="rtl">
>      <p>para</p>
>   </div>
> </body>
> 
> what will be the used value of padding-left/right on <p>? And why?

>From its definition, padding-end in RTL means padding-left. "why" is a difficult question because having padding-right on this sample doesn't make much sense in English anyway, and because I'm not an expert of RTL. Fantasai is, and I'm on vertical side. That's why we combine our efforts to make writing-mode and direction work great for both vertical and RTL.


> p
> {
>   position:absolute;
>   start: 3px;
> }
> div
> {
>   position:relative;
> }
> 
> with this markup:
> 
> <body>
>    <div dir="rtl">
>      <p dir="ltr">para</p>
>   </div>
> </body>
> 
> Note that <P> is LTR and its container is RTL.
> The question is what will be the used value of left/right properties in
> this case?

"start" (offset-start in current draft not checked in yet) is interpreted in the context. We have identified some properties need to use the value of writing-mode/direction of its parent, rather than itself, and offset-* are one of them. When you use "float:left", it means "left in the parent", not "left in the element itself". This is again written in the spec-to-be-checked-in-soon. So in this case, <p> refers the values from its parent, which is RTL in this example, so the "start" means "right".


Regards,
Koji
Received on Monday, 25 October 2010 07:55:52 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:33 GMT