CSS:如何强制将长字符串(没有任何空白)强制包装在XUL和/或HTML中

Pie*_*rre 183 html css string xul word-wrap

我有一个长串(DNA序列).它不包含任何空格字符.例如:

ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA
Run Code Online (Sandbox Code Playgroud)

什么是css选择器强制将此文本包装在html:textarea或xul:textbox中

hee*_*een 264

对于块元素:

<textarea style="width:100px; word-wrap:break-word;">
  ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTC
</textarea>
Run Code Online (Sandbox Code Playgroud)

对于内联元素:

<span style="width:100px; word-wrap:break-word; display:inline-block;"> 
   ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTC
</span>
Run Code Online (Sandbox Code Playgroud)

  • @Michael:答案使用的是"自动换行"规则,而不是"分词"规则; 前者在今天使用的[几乎所有浏览器](http://caniuse.com/#search=word-wrap)中都得到了支持.在指示"部分支持"的情况下,似乎"自动换行"规则的"断字"值仍然可行. (8认同)
  • 我需要 `overflow-wrap: 'anywhere'` (3认同)
  • 适用于Chrome (2认同)
  • 这仅适用于新一波的浏览器 - 请参阅http://caniuse.com/#search=word-break (2认同)
  • 自标准以来,该属性被重命名为`overflow-wrap`,但`wrod-wrap`被广泛实现. (2认同)

Rem*_*ank 104

在要允许断点的点处放置零宽度空格.零宽度空间是&#8203;HTML格式.例如:

ACTGATCG&#8203;AGCTGAAG&#8203;CGCAGTGC&#8203;GATGCTTC&#8203;GATGATGC

  • 观察您是否在可能复制和粘贴的内容中执行此操作. (7认同)
  • 好建议,我今天学到了新东西,谢谢! (4认同)
  • 谢谢你的解决方案.很难在表中找到这样的东西,而这个解决方案是我在IE,Firefox和Chrome中发现的唯一一个. (2认同)
  • 您也可以使用`<wbr>`标签,它的作用与提供可选的换行机会相同. (2认同)

emi*_*mik 37

以下是一些非常有用的答案:

如何防止长话破坏我的div?

为了节省您的时间,这可以用css解决:

white-space: -moz-pre-wrap; /* Mozilla */
white-space: -hp-pre-wrap; /* HP printers */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
word-wrap: break-word; /* IE */
word-break: break-all;
Run Code Online (Sandbox Code Playgroud)

  • +1这是因为它提到了分词:break-all; 这在IE9中对我有用 (4认同)
  • 这是唯一对我有用的铬 (4认同)
  • `word-break:break-all;`是我在Android WebView中唯一有效的. (3认同)

小智 18

对我来说这很有效,

<td width="170px" style="word-wrap:break-word;">
  <div style="width:140px;overflow:auto">
    LONGTEXTGOESHERELONGDIVGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESHERELONGDIVLONGTEXTLONGTEXT
  </div>
</td>
Run Code Online (Sandbox Code Playgroud)

你也可以在另一个div中使用div而不是td.我用过overflow:auto,因为它显示了我的Opera和IE浏览器中的所有文本.


Pet*_*ton 12

我不认为你可以用CSS做到这一点.相反,沿着字符串的常规"字长",插入一个HTML软连字符:

ACTGATCG&shy;AGCTGAAG&shy;CGCAGTGC&shy;GATGCTTC&shy;GATGATGC&shy;TGACGATG
Run Code Online (Sandbox Code Playgroud)

这将在行的末尾显示一个连字符,它包裹在哪里,这可能是也可能不是你想要的.

注意Safari似乎<textarea>无论如何都要包装长字符串,这与Firefox不同.


Gra*_*eck 11

使用CSS方法强制包装没有空格的字符串.三种方法:

1)使用CSS空白属性.要涵盖浏览器的不一致性,您必须以多种方式声明它.所以只需将你的looooong字符串放入某个块级元素(例如div,pre,p),并为该元素提供以下css:

some_block_level_tag {
    white-space: pre;           /* CSS 2.0 */
    white-space: pre-wrap;      /* CSS 2.1 */
    white-space: pre-line;      /* CSS 3.0 */
    white-space: -pre-wrap;     /* Opera 4-6 */
    white-space: -o-pre-wrap;   /* Opera 7 */
    white-space: -moz-pre-wrap; /* Mozilla */
    white-space: -hp-pre-wrap;  /* HP Printers */
    word-wrap: break-word;      /* IE 5+ */
}
Run Code Online (Sandbox Code Playgroud)

2)使用Compassforce-wrap mixin.

3)我也正在研究这个问题,我认为也可能有用(但我需要更完整地测试浏览器支持):

.break-me {
    word-wrap: break-word;
    overflow-wrap: break-word;
}
Run Code Online (Sandbox Code Playgroud)

参考:包装内容


小智 8

我的方式(当没有适当的方式来插入特殊字符)通过CSS:

-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
Run Code Online (Sandbox Code Playgroud)

在这里找到:http://kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/ ,还有一些额外的研究.


小智 5

为了word-wrap:break-word;让我工作,我必须确保display设置为block,并且元素上设置了宽度.在Safari中,它必须有一个p标签,width必须设置ex.