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 矢木浩人