【发布时间】:2017-12-17 01:27:31
【问题描述】:
情况:我有两个固定高度的 div,溢出都设置为隐藏,第一个 div 中有动态文本内容。如果该内容超出第一个 div 的溢出边界,我希望它自动溢出到第二个 div。
我的问题只是如何做到这一点?我进行了研究,发现最接近的是一个 JQuery 插件,它可以自动为类似报纸的布局创建列。虽然这不是我所需要的,但它确实让我希望这可以在更简单的层面上实现。
视觉示例:
<html>
<head>
<style type="text/css">
div{height:1in;width:4in;overflow:hidden}
</style>
</head>
<body>
<div id="d1">...(enough text to cause overflow exceeding 1in height)...</div>
<div id="d2">...(the rest of the text that got cut off from the first div)...</div>
</body>
</html>
谢谢大家!基于所有的输入,我把它放在一起。注意:这可能不适合每个人的目的:
- 我是用 JQuery 做的
- 这是非常概念化的
- 每个附加项都是它自己的元素,而不仅仅是打开的文本
- 我已经知道单个 div 不会打破溢出限制
话虽如此:
HTML
<html>
<head>
<style type="text/css">
#base{border:1px black solid;height:2in;width:3in;overflow:hidden;}
#overflow{border:1px black solid;width:3in;}
.content{width:2in}
</style>
<script type="text/javascript" src="ref/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="work.js"></script>
</head>
<body>
<div id="base">
<div id="sub"></div>
</div>
<br />
<div id="overflow">
</div>
JQ
$(document).ready(function(){
// An array of content, loaded however you wish
var items=new Array();
items[0]='<div class="content" id="C0" style="border:1px blue solid;height:.75in">content 1</div>';
items[1]='<div class="content" id="C1" style="border:1px green solid;height:.75in">content 2</div>';
items[2]='<div class="content" id="C2" style="border:1px red solid;height:.75in">content 3</div>';
items[3]='<div class="content" id="C3" style="border:1px yellow solid;height:.75in">content 4</div>';
items[4]='<div class="content" id="C4" style="border:1px orange solid;height:.75in">content 5</div>';
// Variable for the height of the parent div with the fixed width
var baseheight=$("#base").css('height').substring(0,$("#base").css('height').length-2);
// Function to dynamically get the height of the child div within the fixed width div
function subheight(){return $("#sub").css('height').substring(0,$("#sub").css('height').length-2);}
// For each individual piece of content...
for(i=0;i<items.length;i++)
{
// Add it to the child div
$("#sub").append(items[i]);
// Variable for the difference in height between the parent and child divs
var diff=subheight()-baseheight;
// If this piece of content causes overflow...
if(diff>0)
{
// Remove it...
var tooMuch="#C"+i;$(tooMuch).remove();
// And put it in the overflow div instead
$("#overflow").append(items[i]);
}
}
});
【问题讨论】:
-
你能举个例子吗?代码?一个图像?我无法想象你的概念。
-
想象这是一个 div:
|text|。你想要|long content| <other stuff> |overflow of long content|这样的东西吗? -
当然 :: 我会把这个例子放在我原来的帖子里 ::
-
@JohnRuiz 正在寻找类似的解决方案。您是否找到了性能最佳的合适解决方案?
-
@GiteshPurbia 抱歉花了一些时间回复。这个问题实际上已经有 5 年以上的历史了,所以我建议我获得的任何解决方案都可以用更现代的东西代替?