我有一些动态文本包含在div中,该div设置为用户在文本框字段中输入的内容.如果文本不适合div,那么它现在只是在边缘切断,并且所有超出边框的文本都不可见.我想截断文本,使其适合框内,并在末尾附加省略号(...).例如:
|----div width------|
Here is some sample text that is too long.
Here is some sam...
Run Code Online (Sandbox Code Playgroud)
显然在示例中它很容易,因为代码标签使用固定宽度的字体,因此它就像计算字符一样简单.我有一个可变宽度的字体,所以如果他们输入"WWWWWWWWWWW",它将填充比"................"更少的字符.
最好的方法是什么?我发现了一个潜在的解决方案,可以在这里简单地找到文本的实际像素宽度:http://www.codingforums.com/archive/index.php/t-100367.html
但即使使用这样的方法,实现省略号也有点尴尬.因此,如果它是20个字符并且我发现它不适合,我将不得不截断为19,添加省略号,然后检查它是否再次适合.然后截断为18(加上省略号)并再试一次.然后再次.再次......直到它适合.有没有更好的办法?
编辑:我已经根据答案确定了我的原始方法是最好的,除了我试图通过不创建一个单独的td元素简单地用于测量来改进上述链接中的解决方案,这感觉就像一个黑客.
这是我的代码:
<div id="tab" class="tab">
<div id="tabTitle" class="tabTitle">
<div class="line1">user-supplied text will be put here</div>
<div class="line2">more user-supplied text will be put here</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和风格:
.tab {
padding: 10px 5px 0px 10px;
margin-right: 1px;
float: left;
width: 136px;
height: 49px;
background-image: url(../images/example.gif);
background-position: left top;
background-repeat: no-repeat;
}
.tab .tabTitle {
height: 30px;
width: 122px;
overflow: hidden; …Run Code Online (Sandbox Code Playgroud) 编写可以在.NET(windows)和Mono(linux)上交叉编译的代码的最佳实践是什么?虽然我对.NET非常熟悉,但我对Mono及其所有问题都没有经验.有没有人看过关于这个的好博客文章或最佳实践论文,我还没有能够挖掘出来?我会坚持使用C#3.0级别的功能.
与我有关的事情首先是Interop,因为我需要调用一些本机代码.接下来是处理名称空间的最佳方法,例如Mono.XXX.我应该使用一堆#if吗?隔离每个平台程序集中的代码?
任何有关建筑和设计的建议都将不胜感激!如果你在visual studio(任何版本)的Linux/Mono交叉编译方面有任何经验,我也会对此感兴趣.
如果我有一个javascript变量:
var page = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\"><html><head></head><body>Example</body></html>"
Run Code Online (Sandbox Code Playgroud)
我想加载那个页面,我该怎么办?