У меня есть родительский div с фиксированной шириной и фиксированной высотой.
Содержимое, как бы это ни было, может превысить это, поэтому мне интересно, есть ли способ в Javascript рассчитать, превышает ли контент фиксированные размеры?
Пример будет таким:
<div style="width:20px;height:20px;overflow-x:hidden;overflow-y:hidden;">
A sentence that exceeds the width!
</div>
В приведенном выше случае он превышает ширину. Как это будет достигнуто в Javascript?
создайте родителя для вашего контента:
<div style="width:20px;height:20px;overflow-x:hidden;overflow-y:hidden;">
<div id="parent">
A sentence that exceeds the width!
</div>
</div>
теперь вы можете получить ширину и высоту родителя и сравнить его с вашим основным div:
var h = document.getElementById("parent").offsetHeight;
var w = document.getElementById("parent").offsetWidth;
Вы можете использовать свойства DOM для div и текстовых узлов. Если вы можете обернуть текст в элементе <span>
, похоже, будет легче работать с свойствами измерения.
HTML
<div id="container">
<span>A sentence that exceeds the width!</span>
</div>
CSS
div {
width:50px;
overflow:hidden;
white-space: nowrap;
}
JS
var cont = document.getElementById('container');
var spn = cont.getElementsByTagName('span')[0];
//alert(cont.clientWidth);
//alert(spn.offsetWidth);
if(spn.offsetWidth > cont.clientWidth) {
alert("content exceeds width of parent div");
}