<td style="width:230px;overflow:hidden;">
<?php echo $something; ?>
</td>我所做的是将$something最多裁剪为2行,并在需要时添加...,
但这种要求在尝试实现时似乎线索较少,
欢迎使用php/javascript/css范围内的解决方案!
有谁有主意吗?
发布于 2010-06-02 12:26:21
正如eykanal所说,您不能准确地预测用户的自定义设置。您可以做的唯一一件事就是测量一个有两行文本的元素(在没有填充的屏幕外的div元素中放置少量文本,并测量高度),并将overflow设置为隐藏。
有几个技巧可以获得省略号,但没有一个是我绝对推荐的。您可以在父元素中绝对定位div (使用相对定位),并将其设置为bottom: 0,right: 0,与父元素具有相同的背景色,从而掩盖元素中的最后一段文本。
<style type="text/css">
#parent {
position:relative;
overflow: hidden;
width: 230px;
height: auto;
background: #f1f1f1;
}
.ellipsis {
position: absolute;
right: 0;
bottom: 0;
background: #f1f1f1;
}
</style>
<div id="parent">
This would be the text that was inserted by the PHP code you mentioned above
<div class="ellipsis">...</div>
</div>然后,为了让Javascript获得高度,将其作为伪代码...
<script type="text/javascript">
window.onload = function() {
var textDiv = document.createElement('div');
textDiv.style = 'padding:0;position:absolute;left:-500px;top:-500px;';
textDiv.innerHTML = 'Getting<br>Height';
document.body.appendChild(textDiv);
var textHeight = (textDiv.offsetHeight || textDiv.clientHeight);
document.body.removeChild(textDiv);
document.getElementById('parent').style.height = textHeight;
}
</script>当然,如果你使用的是Javascript框架(Mootools,jQuery),你可以修改你创建元素和设置属性的方式,但这在很大程度上应该是非常接近你想要的东西,并且只需要最少的修修补补。
您可能还希望将带有省略号类的所有元素的高度设置为从javascript检索到的高度的一半。
我就知道这么多了,伙计。希望能有所帮助。:-)
发布于 2010-06-02 12:09:38
我不确定php的字符串方法,但你可以检查一下是否有truncate方法。尝试查找表格单元格的最大字符数,然后使用调用$something.truncate($max_num_of_table_cell)
发布于 2010-06-02 12:10:31
我认为你遇到了文本过长的问题。为此,使用wordwrap函数,
手动示例:
<?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, "\n", 1);
echo "$newtext\n";
?> 输出:
1. A very
long
wooooooo
ooooord.https://stackoverflow.com/questions/2954897
复制相似问题