Ситуация: у меня есть два элемента с фиксированной высотой, переполнение, которое скрыто на обоих, и динамическое текстовое содержимое в первом 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]);
}
}
});