【发布时间】:2012-03-02 08:23:41
【问题描述】:
我正在做一个响应式设计,我有一些显示 <h3> 标记,当浏览器窗口的宽度减小时,我想缩小这些标记。
初始设置,基于 960px 的宽度:
- 正文字体大小设置为 14px
- h3标签的font-size为40px
- 包含div的宽度为230px
这就是我为 javascript/jQuery 制定的:
$(window).resize(function(){
var containerSize = $('.container').width();
var textPercentage = 0.17391304347826086956521739130435; /* 40/230 */
var textRatio = containerSize * textPercentage;
var textEms = textRatio / 14;
$('.container h3').css(fontSize,textEms+"em");
});
我的 javscript 技能显然非常有限,所以我希望你能帮助我把这一切都搞定并正常工作。我认为$(window).resize 函数是错误的事件,因为文本应该在页面加载时自动调整大小,而不仅仅是在窗口调整大小时。
提前感谢您的帮助!
注意:我不希望文本延伸到容器的边缘,这就是我不使用 FitText.js 或 BigText.js 的原因。
【问题讨论】:
-
你应该可以使用css媒体查询,不需要使用js
-
@Jasper 和 ShankarSangoli 都给出了答案,但我要补充一点,您可能需要考虑限制调整大小事件处理程序的执行频率。参考benalman.com/projects/jquery-throttle-debounce-plugin或documentcloud.github.com/underscore/#throttle
-
@elclanrs 媒体查询只允许我根据特定的窗口宽度调整文本大小。我希望我的文本自动根据容器的宽度调整大小。
-
@jessegavin 你能解释一下那个插件到底是做什么的吗?我认为这与阻止脚本连续运行有关,但我不明白技术术语。谢谢!
-
@pixelcook 这篇文章比我解释它做得更好。
标签: javascript jquery font-size responsive-design