W3C home > Mailing lists > Public > whatwg@whatwg.org > August 2008

[whatwg] Joined blocks

From: Kristof Zelechovski <giecrilj@stegny.2a.pl>
Date: Wed, 13 Aug 2008 15:12:21 +0200
Message-ID: <2FCFC73A31FE4924BBC4FA235BA2742A@POCZTOWIEC>
The concept of joint blocks (which should rather be named disjoint canvas)
is relevant mainly to printouts.  As it has already been explained in the
booklet case, HTML is not the primary workhorse for preparing professional
printouts.  Window content is stretchable, unlike a print sheet, therefore
it is easier and more logical to present continuous content in a continuous
block, with an optional IFRAME to make it bounded and locally scrollable.
Note that printouts are usually split into such disjoint canvas called pages
and that HTML has no concept of pagination.
IMHO,
Chris

-----Original Message-----
From: whatwg-bounces@lists.whatwg.org
[mailto:whatwg-bounces at lists.whatwg.org] On Behalf Of Shannon
Sent: Friday, August 01, 2008 6:58 AM
To: WHAT working group
Subject: [whatwg] Joined blocks

Something I think is really missing from HTML is "linked text" (in the 
traditional desktop publishing sense), where two or more text boxes are 
joined so that content overflows the first into the second and 
subsequent boxes. This is a standard process for practically all 
multi-column magazines, books and news layouts. It is especially 
valuable for column layouts where the information is dynamic and 
variable in length and therefore cannot be manually balanced. This is 
not something that can be solved server-side since the actual flow is 
dependent on user style-sheets, viewport and font-size.

For the sake of disambiguation i'll call this "joined blocks", since 
linking has its own meaning in HTML and the content need not be text.

I honestly don't know if this is too difficult to implement, however it 
has been a standard feature of publishing software such as Pagemaker and 
Quark Xpress for over 10 years.

The markup would be something like:

<div id="col1"><img src="logo.png" 
style="float:right"><p>....</p><p>....</p><p>....</p></div>
<div join="col1" id="col2"></div>
<div join="col2" id="col3"></div>

When reflowing, block elements are moved as a whole. If the block won't 
fit then it follows the overflow behaviour of the column. Inline 
elements are split by line.

For backwards-compatibility it must be legal to split the markup over 
each group member (manual or best-guess balancing). However a HTML5 
compliant browser would reflow to other members as though the combined 
markup originated in box 1.

There are two ways to implement this proposal with respect to CSS.
1.) Rewrite the DOM with the new layout. Closing objects that were split 
and propagating attributes.
2.) Rewrite the CSS parser.

Method 1 is probably simpler but has serious issues with the id 
attribute - since it must be unique and therefore cannot propogate to 
both halves of a split object. It could also create undesirable 
behaviour with respect to :first-line, :before and other selectors that 
the author would expect to apply to the element only once. Method 2 
solves most of these issues but it would probably be a significant 
rewrite of current parsers.

I accept this proposal may be difficult to implement but its use case is 
significant with regards to articles and blogs, especially in an era of 
user-submitted content and wide screen layouts.


Shannon
Received on Wednesday, 13 August 2008 06:12:21 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:04 UTC