如何在div元素中检测垂直文本溢出?
CSS:
div.rounded {
background-color:#FFF;
height: 123px;
width:200px;
font-size:11px;
overflow:hidden;
}
HTML:
<div id="tempDiv" class="rounded">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Phasellus vel quam vestibulum orci blandit laoreet.
</div>
答案 0 :(得分:47)
您可以通过将scrollHeight与clientHeight进行比较来轻松完成此操作,请尝试以下操作:
<script type="text/javascript">
function GetContainerSize ()
{
var container = document.getElementById ("tempDiv");
var message = "The width of the contents with padding: " + container.scrollWidth + "px.\n";
message += "The height of the contents with padding: " + container.scrollHeight + "px.\n";
alert (message);
}
</script>
有关详细信息,请查看:http://help.dottoro.com/ljbixkkn.php
答案 1 :(得分:5)
以下jQuery插件会提示结果。
CSS
#tempDiv{
height:10px;
overflow:hidden;
}
确定宽度溢出,
(function($) {
$.fn.isOverflowWidth = function() {
return this.each(function() {
var el = $(this);
if (el.css("overflow") == "hidden") {
var text = el.html();
var t = $(this.cloneNode(true)).hide().css('position', 'absolute').css('overflow', 'visible').width('auto').height(el.height());
el.after(t);
function width() {
return t.width() > el.width();
};
alert(width());
}
});
};
})(jQuery);
确定高度溢出,
(function($) {
$.fn.isOverflowHeight = function() {
return this.each(function() {
var el = $(this);
if (el.css("overflow") == "hidden") {
var text = el.html();
var t = $(this.cloneNode(true)).hide().css('position', 'absolute').css('overflow', 'visible').height('auto').width(el.width());
el.after(t);
function height() {
return t.height() > el.height();
};
alert(height());
}
});
};
})(jQuery);
答案 2 :(得分:5)
Chamika答案的一个变体是,在你的实际html中,有一个内部和外部Div。外部Div具有静态高度和宽度并且隐藏溢出。内部Div只有内容,并将延伸到内容。
然后,您可以比较2个Div的高度和宽度,而无需动态添加任何内容。
<div id="tempDiv" class="rounded">
<div class="content">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Phasellus vel quam vestibulum orci blandit laoreet.
</div>
</div>