W3C home > Mailing lists > Public > www-style@w3.org > December 2008

Re: FW: NoWrap property

From: Bjoern Hoehrmann <derhoermi@gmx.net>
Date: Thu, 04 Dec 2008 11:03:27 +0100
To: Alex Mogilevsky <alexmog@microsoft.com>
Cc: "www-style@w3.org" <www-style@w3.org>
Message-ID: <3i5fj4tgom8i343t958v386vu7io93bctv@hive.bjoern.hoehrmann.de>

* Alex Mogilevsky wrote:
>Attached is an example with a nowrap element ending with a space,
>followed by a non-space character, by a space and by another nowrap.

As I understand CSS 2.1 16.6.1 list 1 item 4 subitem 2

  <nowrap>x#space#</nowrap><inline>#space#y</inline>

Should be the same (if <inline> is normal, nowrap, pre-line) as

  <nowrap>x#space#</nowrap><inline>y</inline>

for rendering and word spacing and I assume then also for breaking.

I further think that for any string or inline that cannot be broken x

  x ~(wraps the same as)~ <nowrap>x</nowrap>

So the only remaining question is whether

  xy := <nowrap>x</nowrap><nowrap>y</nowrap>

should wrap the same as

  <nowrap>xy</nowrap>

I think that is more intuitive than the alternative. So in conclusion

  #1 <nowrap>x#space#</nowrap>y ~~
     <nowrap>x#space#</nowrap><nowrap>y</nowrap> ~~
     <nowrap><nowrap>x#space#</nowrap><nowrap>y</nowrap></nowrap>

  #2 <nowrap>x#space#</nowrap><inline>#space#y</inline> ~~
     <nowrap>x#space#</nowrap><inline>y</inline> ~~
     <nowrap>x#space#</nowrap><nowrap>y-nowrap</nowrap>y-remainder ~~
     <nowrap><nowrap>x#space#</nowrap><nowrap>y-nw</nowrap></nowrap>y-r
     (with <inline> as above and y split into unbreakable part and rest)

  #3 <nowrap>x#space#</nowrap><nowrap>y</nowrap> ~~
     <nowrap><nowrap>x#space#</nowrap><nowrap>y</nowrap></nowrap>

So you don't break in any of your three cases. The question you asked

>"If there is break opportunity between NoWrap span and following
>character, does NoWrap span prohibit it?"

is a bit different though: if you apply the white space processing for
the purposes of finding breaking opportunities, as I assume above, then
there is no breaking opportunity in your examples in the first place.

Assuming you can break on U+3000 as the definition of word-spacing would
suggest and as at least IE6 and Opera do, then 

  <nowrap>x#space#</nowrap>#U+3000#y

would be an example of a breaking opportunity following a nowrap, and it
is not removed by the nowrap, at least not through the white space pro-
cessing rules (again, assuming they apply to breaking opportunities) or
the rules I suggested above.

I note that e.g. HTML4 discourages putting white space at the beginning
or end of inline elements and tools like HTML Tidy automatically move it
outside as necessary, considering that I am not sure why you'd ever want
to wrap between two immediately adjacent non-wrapping lines. But I might
well be missing something.
-- 
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/ 
Received on Thursday, 4 December 2008 10:04:01 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:17 GMT