|
Prev: How to wrap text in <p> tag if the text has no spaces and is very long
Next: IE compatible way of forcing footer to bottom of page?
From: Ben C on 29 Mar 2008 19:05 On 2008-03-29, removeps-groups(a)yahoo.com <removeps-groups(a)yahoo.com> wrote: > How to wrap text in <p> tag if the text has no spaces and is very > long? Here is an example: > ><p>VeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLong</ > p> > > The above line is so long that it ought to wrap. But because it has > no spaces, it does not wrap. Instead the entire text is really on one > line. In Dreamweaver they show you the text going on and on to the > right, about 3 screen lengths. But in Firefox, the text past the div > boundary (ie. to the right of the boundry) does not show up. The only way to make it wrap in browsers is to put zero-width breaking spaces in. This should work: VeryVeryLongVery​Longword Put the ​ characters in wherever you think the browser should break the text. It doesn't make it break there and then (use <br> for that), it just creates a breaking opportunity. An alternative to ​ is the non-standard <wbr> element: VeryVeryLongVery<wbr>Longword It's non-standard but some browsers may support <wbr> that don't support ​ I'm not sure.
From: dorayme on 29 Mar 2008 19:44 In article <slrnfutir6.hgt.spamspam(a)bowser.marioworld>, Ben C <spamspam(a)spam.eggs> wrote: > On 2008-03-29, removeps-groups(a)yahoo.com <removeps-groups(a)yahoo.com> wrote: > > How to wrap text in <p> tag if the text has no spaces and is very > > long? Here is an example: > > > ><p>VeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVe > >ryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVer > >yLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLong</ > > p> > > > > The above line is so long that it ought to wrap. But because it has > > no spaces, it does not wrap. Instead the entire text is really on one > > line. In Dreamweaver they show you the text going on and on to the > > right, about 3 screen lengths. But in Firefox, the text past the div > > boundary (ie. to the right of the boundry) does not show up. > > The only way to make it wrap in browsers is to put zero-width breaking > spaces in. > > This should work: > > VeryVeryLongVery​Longword > > Put the ​ characters in wherever you think the browser should > break the text. It doesn't make it break there and then (use <br> for > that), it just creates a breaking opportunity. > > An alternative to ​ is the non-standard <wbr> element: > > VeryVeryLongVery<wbr>Longword > > It's non-standard but some browsers may support <wbr> that don't support > ​ I'm not sure. There is a table of what browsers do with wbr, ​, and ­ at: <http://www.quirksmode.org/oddsandends/wbr.html> -- dorayme
From: Jukka K. Korpela on 30 Mar 2008 14:03 Scripsit Ben C: >><p>VeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLong</ >> p> This first question is: why would anyone write such a monstrosity? The second question is: if you would like it to be broken by a browser, should the browser read your mind to decide whether it should hyphenate or just break it? > The only way to make it wrap in browsers is to put zero-width breaking > spaces in. No it isn't, as you describe later. Besides, it is up to browsers to decide whether they automatically hyphenate words. Currently they have decided not to. There is nothing in CSS as currently defined to suggest either hyphenation or breaking strings without hyphenation- > This should work: > > VeryVeryLongVery​Longword Should it? By which specification? Beware that HTML specifications do not require Unicode conformance or support to particular Unicode characters. > It's non-standard but some browsers may support <wbr> that don't > support ​ I'm not sure. I am. The <wbr> markup is far better supported and it is not know to cause any trouble, unlike ​ which may in fact be rendered using a glyph for unsupported characters. More info: http://www.cs.tut.fi/~jkorpela/html/nobr.html#suggest -- Jukka K. Korpela ("Yucca") http://www.cs.tut.fi/~jkorpela/
From: Ben C on 30 Mar 2008 14:59 On 2008-03-30, Jukka K. Korpela <jkorpela(a)cs.tut.fi> wrote: > Scripsit Ben C: > >>><p>VeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLongVeryVeryLong</ >>> p> > > This first question is: why would anyone write such a monstrosity? Often because it's a URL generated by something like a content management system that requires at least one unique URL for each atom in the universe. > The second question is: if you would like it to be broken by a > browser, should the browser read your mind to decide whether it should > hyphenate or just break it? > >> The only way to make it wrap in browsers is to put zero-width breaking >> spaces in. > > No it isn't, as you describe later. Besides, it is up to browsers to > decide whether they automatically hyphenate words. Currently they have > decided not to. There is nothing in CSS as currently defined to > suggest either hyphenation or breaking strings without hyphenation- Well, in the sense that CSS doesn't define exactly what a "line-breaking opportunity" is. But it does imply that browsers should only ever break lines at line-breaking opportunities, and that what counts as a line-breaking opportunity doesn't change just because there is less space available. In fact Unicode specifications do define a lot of stuff about line breaking and most browsers either implement that or a simplification of it although as we know they aren't required to. >> This should work: >> >> VeryVeryLongVery​Longword > > Should it? By which specification? Beware that HTML specifications do > not require Unicode conformance or support to particular Unicode > characters. I did know that, since you have pointed it out previously. I just meant "should work" in the sense of "probably will".
From: Jukka K. Korpela on 3 Apr 2008 15:46
Scripsit Ben C: >> This first question is: why would anyone write such a monstrosity? > > Often because it's a URL generated by something like a content > management system that requires at least one unique URL for each atom > in the universe. Then this problem should be fixed instead of trying to make the display of a monstrous URL wrapped. URLs are to be used in attribute values in HTML, not as textual content (except when you _discuss_ URLs as strings, and then you should be competent enough in HTML matters and "URL in context" rules). >> There is nothing in CSS as currently defined to >> suggest either hyphenation or breaking strings without hyphenation- > > Well, in the sense that CSS doesn't define exactly what a > "line-breaking opportunity" is. It doesn't define it at all. It would be appropriate to say that _HTML_ doesn't define it exactly (but makes, unline CSS, some vague feeble attempts at making notes that remotely resemble excuses for parts of draft definitions). > But it does imply that browsers > should only ever break lines at line-breaking opportunities, and that > what counts as a line-breaking opportunity doesn't change just > because there is less space available. Huh, what, where? I don't see such things in CSS specs. The statement "browsers should only ever break lines at line-breaking opportunities" is more or less a truism (line break opportunities are line break opportunities), but I don't think CSS says even that. In CSS 3 drafts, there are attempts at defining properties for line breaking control, but they are incomplete sketches that have made little if any progress during the last few years, and they are neither normative or even proposed normative document nor implemented even experimentally in available browsers, except for some properties. > In fact Unicode specifications do define a lot of stuff about line > breaking Quite a lot indeed, with many oddities. > and most browsers either implement that or a simplification > of it although as we know they aren't required to. I don't think any browser even tries to get close to implementing Unicode line breaking rules or even a simplification of them. Rather, browsers may apply some of those rules, typically in a poor way they were never meant to be used. The rules say that you may break after a hyphen, but it's just stupid to do so in a string like " -x ". -- Jukka K. Korpela ("Yucca") http://www.cs.tut.fi/~jkorpela/ |