Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阻止文本在容器中过度运行_Javascript_Html_Css - Fatal编程技术网

Javascript 阻止文本在容器中过度运行

Javascript 阻止文本在容器中过度运行,javascript,html,css,Javascript,Html,Css,我有一个容器,其中有一条消息被回响,消息本身没有固定的大小,因为它是由用户生成的,但可能发生的情况是,如果提交的文本字符串太长,它可能会溢出其容器,从而破坏设计 是否有一种方法(希望只使用css,尽管js是可以的)使框裁剪文本并保留一个…,然后我可以在另一个页面上放置指向文本的链接 显然,您可以使用overflow:hidden来阻止这种情况的发生,但我希望使用更为elegenat的方法,而不是直接切断它。我似乎记得在css3上读到过这样的东西,但我一生都搞不懂它叫什么 我在这里解决了这个问题-

我有一个容器,其中有一条消息被回响,消息本身没有固定的大小,因为它是由用户生成的,但可能发生的情况是,如果提交的文本字符串太长,它可能会溢出其容器,从而破坏设计

是否有一种方法(希望只使用css,尽管js是可以的)使框裁剪文本并保留一个
,然后我可以在另一个页面上放置指向文本的链接

显然,您可以使用
overflow:hidden
来阻止这种情况的发生,但我希望使用更为elegenat的方法,而不是直接切断它。我似乎记得在css3上读到过这样的东西,但我一生都搞不懂它叫什么


我在这里解决了这个问题-

CSS属性
文本溢出:省略号
,尽管浏览器支持各不相同

那应该对你有用。所有这些都需要包括在内

您可能还希望包括以下浏览器前缀:

-ms-text-overflow: ellipsis;
-o-text-overflow: ellipsis;
它在所有浏览器中都不是完美的,但对大多数浏览器来说应该是好的:

使用JavaScript,您可以使用
子字符串来实现这一点。jQuery不是必需的,但它使它变得更简单了一点

var myText = $('.myBox').text(), 
maxLength = 250, 
more = '...';

if (myText.length > maxLength) {
    myText = myText.substring(0, 250);

    $('.myBox p').text(myText + more);
}
请参阅我的示例:

您可能需要试用 实际代码在这里


老实说,在段落中加省略号是很难的,但在单行文字中加省略号却很简单。

这对你来说是一个合理的起点吗

小提琴:

基本上,您可以将所有内容添加到
div
中,并使用
溢出:hidden
的常规方法将其隐藏。您还可以添加一个选项卡,悬停时显示其余内容。如果将绝对定位用于鼠标悬停状态,则内容将立即从流中删除,并允许覆盖任何周围的内容。它可能不是一个完整的解决方案,但它是一个纯粹的CSS方向,您可以探索


执行业务的位是通用同级选择器“~”(tilde)。现代浏览器对它的支持相当可靠。

CSS的文本溢出:省略号在较新的浏览器中有效。好问题/好主意!我从未想过CSS解决方案。但是创建了几个JavaScript解决方案…可能重复,仅使用css处理不会允许您链接省略号。同意-css本身不会为您提供将内容添加到单独页面的功能。是否不可能只在服务器端传递一组字符?
var myText = $('.myBox').text(), 
maxLength = 250, 
more = '...';

if (myText.length > maxLength) {
    myText = myText.substring(0, 250);

    $('.myBox p').text(myText + more);
}