我有一长串(DNA序列)。它不包含任何空白字符。
例如:
ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA
什么是CSS选择器,迫使这个文本被包装在html:textarea或在xul:文本框?
我有一长串(DNA序列)。它不包含任何空白字符。
例如:
ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA
什么是CSS选择器,迫使这个文本被包装在html:textarea或在xul:文本框?
对于块元素:
< textarea风格= "宽度:100 px;自动换行:break-word;" > ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTC textarea > < /
对于内联元素:
<跨风格= "宽度:100 px;自动换行:break-word;显示:inline-block;" > ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTC < / span >
我不认为CSS可以做到这一点。相反,在字符串中按常规的“字长”插入一个HTML软连字符:
ACTGATCG­AGCTGAAG­CGCAGTGC­GATGCTTC­GATGATGC­TGACGATG
这将在行尾的换行处显示一个连字符,这可能是您想要的,也可能不是。
注意与Firefox不同,Safari似乎将长字符串包装在<textarea>中。
在你想要休息的地方放置零宽度的空间。零宽度空间为​在HTML中。例如:
ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGC
对我来说这是可行的,
<td width="170px" style="word-wrap:break-word;">
<div style="width:140px;overflow:auto">
LONGTEXTGOESHERELONGDIVGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESLONGTEXTGOESHERELONGDIVLONGTEXTLONGTEXT
</div>
</td>
你也可以在另一个div中使用一个div,而不是td。我使用overflow:auto,因为它可以显示Opera和IE浏览器中的所有文本。
如果你使用的是PHP,那么wordwrap函数可以很好地工作: http://php.net/manual/en/function.wordwrap.php
CSS解决方案word-wrap: break-word;在所有浏览器中似乎不一致。
其他服务器端语言也有类似的功能——或者可以手工构建。
下面是PHP wordwrap函数的工作原理:
$string = "ACTGATCGAGCTGAAGCGCAGTGCGATGCTTCGATGATGCTGACGATGCTACGATGCGAGCATCTACGATCAGTCGATGTAGCTAGTAGCATGTAGTGA";
$wrappedstring = wordwrap($string,50,"<br>",true);
使用<br>标记将字符串包装为50个字符。'true'参数强制字符串被切断。
使用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+ */
}
2)使用Compass中的force-wrap mixin。
3)我也在研究这个问题,我认为可能也有用(但我需要更全面地测试浏览器支持):
.break-me {
word-wrap: break-word;
overflow-wrap: break-word;
}
参考资料:包装内容
以下是一些非常有用的答案:
如何防止长词打破我的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;
我的方法(当没有合适的方法插入特殊字符)通过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/ 还有一些额外的研究。
<textarea style="width:100px; word-wrap:break-word;">
place your text here
</textarea>
使用超级>标签:
ACTGATCG<wbr>AGCTGAAG<wbr>CGCAGTGC<wbr>GATGCTTC<wbr>GATGATGC
我认为这比使用零宽度空间更好​这可能会导致问题,当你复制文本。
如果你使用Bootstrap,对你来说更好的情况是使用这个类“text-break”。
例子:
< p class = "文本从“> mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm < / p >
更多的信息,你应该得到官方引导文档页
下面是我使用空白的代码:预换行;
.code {
width: 90vw;
white-space: pre-wrap;
font-family: inherit;
word-break: break-word;
overflow-wrap: break-word;
line-break: auto;
}
我知道带值的看起来很奇怪,你应该把它改成适合你需要的值。