【发布时间】:2012-11-26 22:03:34
【问题描述】:
我正在尝试遍历一些文本范围,并根据这样做所需的最小字体大小调整文本大小以适应其包含的 div。
<div id="preview">
<div id="test">
<section class="slide">
<span>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br />
Nam in mauris a magna elementum ornare vel at velit.<br />
Nulla facilisi.<br />
Sed eu odio id urna fermentum imperdiet eget sit amet enim.</span>
</section>
<section class="slide">
<span>Cras cursus ante et tortor placerat sodales.<br />
Curabitur libero quam, cursus sit amet feugiat id, elementum at lectus.<br />
Integer volutpat aliquet massa at adipiscing.<br />
Vivamus purus leo</span>
</section>
</div><!--/ #test -->
</div><!--/ #preview -->
到目前为止,我必须这样做的 jquery 是
var fontSizeArray = [];
$('#test > .slide').children('span').each(function () {
var currentFontSize = parseInt($(this).css('font-size'));
do {
currentFontSize = currentFontSize + 1;
$(this).css('font-size', currentFontSize);
} while ($(this).width() < $('#test').width());
fontSizeArray.push(currentFontSize);
});
var smallest = Math.min.apply( null, fontSizeArray );
$('#test > .slide').children('span').each(function () {
$(this).css('font-size', smallest);
});
我创建了一个小提琴来更好地说明这一点。
基本上所有文本都应该调整大小以适应 div #test
【问题讨论】:
-
应该所有的
spans 都有samefont-size(所以你受到最长文本行的font-size的限制)?还是每个span的大小都是单独的?font-size是否受父div元素的垂直高度限制,或者div是否允许垂直扩展? -
@DavidThomas 是的,所有跨度都应该具有相同的字体大小。是的,字体大小将受到垂直高度以及每个跨度的限制。只是想对宽度进行排序,然后我要查看高度。但是,如果您对两者都有解决方案...
-
这可能会有所帮助:stackoverflow.com/questions/2989950/… 也看看这里,可能有一些事情要做你需要做的事情:sixrevisions.com/javascript/jquery-plugins-typography