我有一个div
,它有一个固定的高度和一个流体宽度(宽度为body
的15%)。我希望里面的段落文字完全填满div
;不溢出而不是底部填充。
我尝试使用jQuery增加文本大小,直到段落的高度等于容器div
的高度。此时,文本应完全覆盖div
。唯一的问题是字体大小以0.5px值递增。你不能做33.3px;它必须是33.0px或33.5px。因此,在33px时,我的文字太短而不能覆盖div
,并且在33.5px处溢出。
有没有人对如何解决这个问题有任何想法?有很多插件可以使文本填充容器的整个宽度,但不能用于填充宽度和高度的文本。至少,我没见过。
<head>
<style type="text/css">
.box {
display:block;
position:relative;
width:15%;
height:500px;
background:orange;
}
.box p {
background:rgba(0,0,0,.1); /* For clarity */
}
</style>
</head>
<body>
<div class="box">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br><br>
Suspendisse varius nibh quis urna porttitor, pharetra elementum nisl egestas. Suspendisse libero lacus, faucibus id convallis sit amet, consequat vitae odio.</p>
</div>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
function responsiveText(){
var i = 0.5;
do {
$(".box p").css("font-size",(i) + "px");
var textHeight = $(".box p").height(),
containerHeight = $(".box").height();
i += 0.5;
} while ( textHeight < containerHeight ); // While the height of the paragraph block is less than the height of the container, run the do...while loop.
} responsiveText();
$(window).resize(function(e) {
responsiveText();
});
</script>
</body>
文字设置为33px。它太短了。
文字设置为33.5px。它溢出了。
答案 0 :(得分:4)
I adjusted your function使用em
单位而不是px
,并将增量从“0.5”调整为“0.003”。
预览窗格有点不可靠,所以check it out in its own window。
请记住: