与此问题非常相似:
Making a piece of text non-breaking
但是,我在中文上这样做,并没有使用空格。我想确保书名或其他短语没有被分解并且有孤儿词。我该怎么做?
注意:我尝试使用<nobr>
但行为不正常。问题的示例代码和屏幕截图:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table border=1>
<td style="width: 25em;">《1字字字字》,《2字字字字》,《3字字字字》,《4字字字字》,<nobr>《5字字字字》</nobr>,<nobr>《6字字字字》</nobr>,<nobr>《7字字字字》</nobr>,<nobr>《8字字字字》</nobr>,<nobr>《9字字字字》</nobr>,《10字字字字》</td>
</table>
<br><br>
<table border=1>
<td style="width: 25em;">《1字字字字》,《2字字字字》,《3字字字字》,《4字字字字》,《5字字字字》,《6字字字字》,《7字字字字》,《8字字字字》,《9字字字字》,《10字字字字》</td>
</table>
</body>
</html>
屏幕截图:
<nobr>
忽略了逗号中换行的可能性,所以它将元素5处理为单行,将单元格推过我设置的宽度。
附加说明:我刚刚使用span.nobr { white-space: nowrap; }
进行了快速测试。它与<nobr>
完全相同,所以我有点难过。
答案 0 :(得分:1)
这似乎有用......
<td style="width: 25em;"><nobr>《1字字字字》,《2字字字字》,《3字字字字》,《4字字字字</nobr>》,《5字字字字》,《6字字字字》,《7字字字字》,《8字字字字》,《9字字字字》,《10字字字字》</td>
添加一个类并使用jquery,这样的东西?
<td class="nobr" style="width: 25em;">《1字字字字》,《2字字字字》,《3字字字字》,《4字字字》,《5字字字字》,《6字字字字》,《7字字字字》,《8字字字字》,《9字字字字》,《10字字字字》</td>
的jquery ..
$(function(){
$(".nobr").text(function () {
var addNobr=$(this).text().replace(/\《/g, '<nobr>《').replace(/\》/g, '</nobr>》');
$(this).html(addNobr);
});
});
结果...
答案 1 :(得分:1)
您可以使用<wbr>(分词符号)标记来指示一个单词的结尾和下一个单词的开头,告诉浏览器可以在那里进行分组。如果您的页面是用Unicode编码的,那么您也可以使用U+200B字符(其作用类似于空格,但不会打印任何内容)。
答案 2 :(得分:0)
CSS:
td div.nobr { display:inline-block; }
HTML:
<table border=1>
<td style="width: 25em;">
<div class="nobr">«1????»,«2????»,«3????»,«4????»,</div>
<div class="nobr">«5????»</div>,
<div class="nobr">«6????»</div>,
<div class="nobr">«7????»</div>,
<div class="nobr">«8????»</div>,
<div class="nobr">«9????»</div>,
<div class="nobr">«10????»</div>
</td>
</table>
你基本上将每个角色的组都放入一个div中,并设置一个显示:inline-block;所有div的财产。