我尝试使用与http://www.webdesignerdepot.com/主要帖子页面很相似的容器。文本填充它的空间(根据标题占用的行数而变化)但是我无法在没有溢出的情况下使其工作:中途隐藏切割文本或文本流出容器。
答案 0 :(得分:1)
此解决方案有多个组件;它涉及CSS和jQuery。
我首先将每个单元格包装在<cell>
标记中,该标记是自定义的内联块元素。在该元素内部还有两个元素<t>
,其中包含标题,<cnt>
包含内容。
<cell>
<t>Title</t>
<cnt>Content</t>
</cell>
inline-block
元素(可以自由调整大小)。 这反映在以下CSS中:
cell
{
text-align: left;
display: inline-block;
width: 300px;
height: 200px;
border: 1px solid #ccc;
padding: 10px;
margin: 0;
vertical-align: top;
overflow: hidden;
}
cell t
{
display: block;
font-size: 30px;
font-weight: bold;
height: auto;
line-height: 30px;
}
cell cnt
{
display: block;
font-size: 16px;
line-height: 16px;
margin: 10px 0px;
overflow: hidden;
}
内容的高度必须由jQuery设置,因为在不知道标题大小的情况下,无法强制内容为特定大小。
我首先得到整个元素的高度,标题的高度和内容的行高。通过从元素的高度减去标题的高度,我得到内容的分配高度。
然后,通过将其除以线高并将其转换为整数,我们得到适合空间的线数。最后,将行数乘以行高表示内容的总高度。
由于内容隐藏了溢出,因此它被强制保留在我们为其设置的高度内。
$(document).ready(function(){
$("cell").each(function(){
var cellHeight = parseFloat($(this).css("height"));
var titleHeight = $(this).find("t").height();
var lineHeight = parseFloat($(this).find("cnt").css("line-height"));
//Calculate height
var nHeight = cellHeight - titleHeight;
var numLines = parseInt(nHeight / lineHeight);
nHeight = numLines * lineHeight;
$(this).find("cnt").css("height", nHeight);
});
});