我正在em
为我的文本使用单位,但是,它似乎不起作用。在大屏幕分辨率中,文本不够宽/不足以填满屏幕,在小屏幕分辨率中,它会换行。我该如何控制这个?
基本上,如果我可以根据实际的窗口大小来控制文本的大小,那就太好了。因此,如果窗口被缩小和/或放大,文本会适应它,并且布局应该始终看起来相同(在所有浏览器屏幕宽度中)。
我怎样才能做到这一点?一直在玩 jQuery resize 事件,但不知道如何将它用于我的目的。也许有人可以让我在这里朝着正确的方向开始?
以下是执行此操作的 jsFiddle 示例:http: //jsfiddle.net/vqbCL/2/
但是,对于表格元素,我没有使用任何表格元素。尝试流畅的布局。因此,如果我可以将该技术应用于页面上所有元素的字体大小,那就太好了。
这是我在尝试执行此操作时尝试使用的代码:
jQuery(document).ready(function($){
$(window).bind("resize", function(){
var containerSize = $("body").width(),
bodyFontSize = $("body").css("font-size");
textPercentage = parseInt(bodyFontSize.substring(0, bodyFontSize.length - 2)) / $("body").width(),
textRatio = containerSize * textPercentage,
textEms = textRatio / parseInt(bodyFontSize.substring(0, bodyFontSize.length - 2));
alert("Text Percentage = " + textPercentage + "\nTextRatio = " + textRatio + "\nNew EM font-size = " + textEms);
$('body').css('fontSize', textEms+'em');
}).trigger("resize");
});
这里发生的事情是这样的:
containerSize = 974 (might be different for you depending on your browser width).
bodyFontSize = 16px
textPercentage = 16/974 = 0.01642710472279261
textRatio = 974 * 0.01642710472279261 = 16
textEm = 16 / 16 = 1em;
需要确定如何获得正确的 textRatio 并从中获得正确的 textEm。
* 更新到上面的最新代码 *
你可以看到我在这里尝试实现这个:http: //dream-portal.net/Test/index.html
基本上,Text Ratio(16 像素)和 EM Font-Size 始终为 1em(它们始终相同),然而,这里唯一改变的是Text Percentage
on window resize。但是字体大小始终为 1em,文本比率始终 = 16(如 16 像素,这是body.css("font-size")
值。在某处计算此值的公式中一定存在某种缺陷。