HTML 長い文字列の改行
ナビゲーションに移動
検索に移動
HTML 長い文字列の改行
- ブロック要素の中に長い文字列を置くと、折り返されない。
- 例えば、IEとFirefoxでは、divタグの中に長い文字列を置いたときに挙動が異なる。
http://yoosee.net/d/archives/2005/01/04/002.html http://archiva.jp/web/html-css/20060808013000.html
- GMailでは、<wbr>を使ってた。
適当な位置に、<wbr>を入れる
- HTMLタグ以外の特殊文字はエスケープされていること
public static String blockComment(String value, int column) { final String WORD_BREAK_STR = "<wbr>"; char[] c = value.toCharArray(); StringBuilder buf = new StringBuilder(c.length + 20); boolean isInTag = false; boolean isEscChar = false; int charCnt = 0; for(int i=0; i<c.length; i++) { switch (c[i]) { case '<': isInTag = true; break; case '>': isInTag = false; break; case '&': isEscChar = true; break; case ';': isEscChar = false; break; default: } if (!isInTag) { try { charCnt += String.valueOf(c[i]).getBytes("Shift_JIS").length; } catch (UnsupportedEncodingException e) {} } if (isEscChar) { if (c[i]=='&') { charCnt++; } } buf.append(c[i]); if (charCnt >= column) { buf.append(WORD_BREAK_STR); charCnt = 0; } } return buf.toString(); }
© 2006 矢木浩人