W3C home > Mailing lists > Public > www-style@w3.org > April 2013

Re: [css3-text] Feature request: "white-space: ignore"

From: Jon Ronnenberg <jon.ronnenberg@gmail.com>
Date: Sat, 20 Apr 2013 19:29:38 +0200
Message-ID: <CAPEZGVsyGDa_s_AYsxaXzhRuzr92tEGXrBP0UdcZcnhU_aOFmw@mail.gmail.com>
To: koji.a.ishii@mail.rakuten.com, Tim Leverett <zzzzbov@gmail.com>, fantasai <fantasai.lists@inkedblade.net>, Alan Stearns <stearns@adobe.com>, harry@csswizardry.com, Biju <bijumaillist@gmail.com>, "Tab Atkins Jr." <jackalmage@gmail.com>, zackw@panix.com
Cc: "www-style@w3.org" <www-style@w3.org>
Since I've been working on a CSS grid system this week, it has come to my
attention that we have a white-space issue in the current WD of the CSS3
Text module[1]. This issue propagate itself, but not exclusive, to the sum
of widths of inline-blocks not being what the web author intended[2][3].

Historically, we've been using floats to add layout to our CSS. The last
couple of years has seen the up rise of another method, using
inline-block[4], to control CSS layout. And in the near future, we all hope
to use Flexbox[5], as it is designed for CSS layout.

The issue of empty DOM nodes has been discussed on the www-style mailing
list the past two months. I have in support of my request, created a
white-space:none; polyfill[6] which handles the mentioned issues. Below, I
will try to summarize the discussion so far.

Flexbox can't be used on the web today so I've created a proof of concept,
that resolves the issue: https://github.com/dotnetCarpenter/white-space
This script implements "white-space: none;" as noted in issue 3 of the
http://www.w3.org/TR/css3-text/#white-space. But we need it in the specs to
guarantee that it won't break web pages in the future.

Elika/fantasai propose "white-space: trim-inner;" to combat empty nodes
back in July 2011[7]. Zack propose "white-space: ignore;" to combat a text
overflow issue in December 2012[8]. The following discussion, including my
own, takes place in the same thread[9][10].

Bert chimes in with a DT example illustrating another use-case for
"white-space: ignore;" (though I don't quite get it) and Zach on behalf of
Elika, shows how Flexbox[5] will mitigate the issue.

Tab mentions that "white-space: ignore;" is covered by the
'text-space-collapse' property in CSS4 Text[11] and Biju brings up four
different interpretations that 'text-space-collapse' should/could handle.

I then brought up that "white-space: ignore;" would fix a big issue with
fluid grid systems[3], using 'inline-block' in contrast to 'float' (and
wrongfully attribute Bert for the proposal instead Zach). My wish is to add
"white-space: ignore;" to the CSS3 Text module. Elika and Alan argue for
the use of Flexbox[5] and I retain that "white-space: ignore;" is an
important omission from CSS3 Text[1] and if added to spec, could be used
already today. Tab and Alan don't think my last statement is valid.

Tim propose that the property/value should be "white-space: none;" and even
though Flexbox is the  right solution for concepts such as multiple
columns, Flexbox doesn't fix white space unintentionally gets in the way.
He then presents a use case with images which is similar to the example of
Tab respond that Flexbox will mitigate this issue as well.

While Flexbox[5] is a wonderful thing, it isn't backwards compatible and
implementing a shim has proven very difficult[12]. In contrast a small
amendment to CSS3 Text module, namely "white-space: none;", is easy to shim
and fixes a lot of issues that web developers are facing today.

But a shim is not a shim if there is no spec to shim. :) For this to be a
reliant approach, "white-space: none;" must be in the CSS3 Text[1] spec and
the shim must abide the spec 100%.

I will update the "white-space: none;" polyfill[6] with test cases and
further browser support. All I'm asking for is a sign of good will from
either the CSSWG or the W3C community.

Obviously, spec writers and browser vendors are immensely powerful in
steering the web forward. I just hope that web authors, who actually
provides the content of the web, also has a place in the W3C decision
making process and the open web.

Cheers, Jon


   1. http://www.w3.org/TR/css3-text/#white-space
   3. https://github.com/csswizardry/inuit.css/issues/194
   4. https://blog.mozilla.org/webdev/2009/02/20/cross-browser-inline-block/
   5. http://www.w3.org/TR/css3-flexbox/#flex-flow
   6. https://github.com/dotnetCarpenter/white-space
   7. http://lists.w3.org/Archives/Public/www-style/2011Jul/0538.html
   8. http://lists.w3.org/Archives/Public/www-style/2013Mar/0718.html
   11. http://dev.w3.org/csswg/css-text-4/#white-space-collapsing
   12. https://github.com/doctyper/flexie#readme
Received on Saturday, 20 April 2013 17:30:06 UTC

This archive was generated by hypermail 2.3.1 : Saturday, 20 April 2013 17:30:09 UTC