如何强制一个没有任何空白的长字符串?

时间:2009-01-31 16:44:17

标签: html css string xul wrapping

我有一个长串(DNA序列)。它不包含任何空白字符。

例如:

ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA

强制将此文字包含在html:textareaxul:textbox中的CSS选择器是什么?

15 个答案:

答案 0 :(得分:252)

块元素

<textarea style="width:100px; word-wrap:break-word;">
  ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTC
</textarea>

用于内联元素:

<span style="width:100px; word-wrap:break-word; display:inline-block;"> 
   ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTC
</span>

答案 1 :(得分:101)

zero-width spaces放在要允许休息的位置。 HTML中的零宽度空间为&#8203;。例如:

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

答案 2 :(得分:36)

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

How to prevent long words from breaking my 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;

答案 3 :(得分:18)

对我而言,这是有效的,

<td width="170px" style="word-wrap:break-word;">
  <div style="width:140px;overflow:auto">
    LONGTEXTGOESHERELONGDIVGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESHERELONGDIVLONGTEXTLONGTEXT
  </div>
</td>

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

答案 4 :(得分:12)

我认为你不能用CSS做到这一点。相反,沿着字符串的常规“字长”,插入一个HTML soft-hyphen:

ACTGATCG&shy;AGCTGAAG&shy;CGCAGTGC&shy;GATGCTTC&shy;GATGATGC&shy;TGACGATG

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

注意Safari似乎将长字符串包装在<textarea>中,与Firefox不同。

答案 5 :(得分:10)

使用CSS方法强制换行没有空格的字符串。三种方法:

1)使用CSS white-space属性。要涵盖浏览器的不一致性,您必须以多种方式声明它。所以只需将你的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+ */
}

2)使用force-wrap mixin from Compass

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

.break-me {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

参考:wrapping content

答案 6 :(得分: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;

在此处找到:http://kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/ 在那里可以找到一些额外的研究。

答案 7 :(得分:5)

要让word-wrap:break-word;为我工作,我必须确保display设置为block,并且已在元素上设置了宽度。在Safari中,它必须包含p标记,并且必须在width中设置ex

答案 8 :(得分:3)

如果你正在使用PHP,那么wordwrap函数适用于此: http://php.net/manual/en/function.wordwrap.php

CSS解决方案word-wrap: break-word;在所有浏览器中似乎都不一致。

其他服务器端语言具有类似的功能 - 或者可以手工构建。

以下是PHP wordwrap函数的工作原理:

$string = "ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA";

$wrappedstring = wordwrap($string,50,"&lt;br&gt;",true);

这将使用&lt; br&gt;将字符串包装为50个字符。标签。 'true'参数强制剪切字符串。

答案 9 :(得分:3)

<textarea style="width:100px; word-wrap:break-word;">
  place your text here
</textarea>

答案 10 :(得分:2)

如果表格不是固定大小,则下面的行适用于我:

style="width:110px; word-break: break-all;"

答案 11 :(得分:2)

如果您使用 Bootstrap,最好使用此类“text-break”。

示例:

<p class="text-break">mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm</p>

您应该在官方 Bootstrap 文档页面中获得更多信息

答案 12 :(得分:1)

只需设置width并添加float就可以了: - )

width:100%;
float:left;

答案 13 :(得分:0)

使用<wbr>标记:

dgvusers.DataSource = datatable
dgvusers.Columns(0).Visible = False
txtID.DataBindings.Add("Text", datatable, "ID")

我认为这比使用零宽度空间ACTGATCG<wbr>AGCTGAAG<wbr>CGCAGTGC<wbr>GATGCTTC<wbr>GATGATGC 更好,这可能会在您复制文本时出现问题。

答案 14 :(得分:-3)

$ string =&#34; ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA&#34;;

$ wrappedstring = html_entity_decode(wordwrap($ string,50,&#34;&lt; br&gt;&#34;,true)); 这是正确的代码