调整窗口大小时自动调整文本大小(字体大小)?
我一直在尝试(徒劳)build立一个页面,当我改变窗口大小时,页面的元素会resize。 我有工作在CSS图像没有问题,但我似乎无法完成相同的文字,我不知道它甚至可以在CSS中。 我似乎无法find一个jquery脚本来完成这一点。
当用户调整窗口大小时,我基本上希望页面能够dynamic且stream畅地缩放,而不必调用页面缩放。 这工作正常我的img divs通过CSS,但不是为文本,保持相同的大小。
有任何想法吗?
我必须自己做这个。 我所做的是为身体设置一个基本文字大小,以及所有其他大小的百分比。 然后,我使用一个简单的jQuery脚本来改变窗口大小的基本大小。 其他尺寸然后更新。
我用了这样的东西:
$(function() { $(window).bind('resize', function() { resizeMe(); }).trigger('resize'); });
在resizeMe函数中,我有这样的:
//Standard height, for which the body font size is correct var preferredHeight = 768; //Base font size for the page var fontsize = 18; var displayHeight = $(window).height(); var percentage = displayHeight / preferredHeight; var newFontSize = Math.floor(fontsize * percentage) - 1; $("body").css("font-size", newFontSize);
试试像FitText这样的jQuery插件。 它会自动调整文本大小以适应父元素的宽度。
另一个具有相同目标的jQuery插件是BigText ( 演示 )。
您可以使用CSS3媒体查询来执行此操作,根据浏览器大小指定不同的基本字体大小。 A List Apart有一篇很好的文章
对于IE支持,您可以使用CSSexpression式来破解它
这要求您使用固定的基本字体大小,例如在body
标签上,而在其他地方使用基于百分比或em
的大小。
基于Lizzan的回答,这是一个使用宽度和高度的平方根来获得比例尺寸的版本:
// When document has finished loading $(document).ready(function() { var resizeText = function () { // Standard height, for which the body font size is correct var preferredFontSize = 180; // % var preferredSize = 1024 * 768; var currentSize = $(window).width() * $(window).height(); var scalePercentage = Math.sqrt(currentSize) / Math.sqrt(preferredSize); var newFontSize = preferredFontSize * scalePercentage; $("body").css("font-size", newFontSize + '%'); }; $(window).bind('resize', function() { resizeText(); }).trigger('resize'); });
演示: http : //jsfiddle.net/tomsoderlund/26Gad/embedded/result/
我使用的是http://practicaltypography.com/end-credits.html#bio M. Butterick的技巧:
<style type="text/css"> <!--adattamento font-size a browser width--> @media all {html {font-size: 24px;}}@media all and (max-width:2200px){html {font-size: 27px;}}@media all and (max-width:1800px){html {font-size: 26px;}}@media all and (max-width:1400px){html {font-size: 25px;}}@media all and (max-width:1000px){html {font-size: 24px;}}@media all and (max-width:960px){html {font-size: 23px;}}@media all and (max-width:920px){html {font-size: 22px;}}@media all and (max-width:880px){html {font-size: 21px;}}@media all and (max-width:840px){html {font-size: 20px;}}@media all and (max-width:800px){html {font-size: 19px;}}@media all and (max-width:760px){html {font-size: 18px;}}@media all and (max-width:720px){html {font-size: 17px;}}@media all and (max-width:680px){html {font-size: 16px;}}@media all and (max-width:640px){html {font-size: 15px;}}@media all and (max-width:600px){html {font-size: 14px;}}@media all and (max-width:560px){html {font-size: 13px;}}@media all and (max-width:520px){html {font-size: 12px;}} <!--body-format--> body { max-width:1000px; min-width:520px; line-height:1.33em; margin:1em; background-color:#f7f7f7; font-family:Source Sans Pro; color:#361800; } </style>
roryf在正确的轨道上!
媒体查询是(其中之一)的答案。
这里的诀窍是从body开始,无处不在的字体大小使用%。 这样字体大小得到inheritance,当你改变它的身体,它得到的地方变了。
尝试像这样:
body { font-size: 100% } h1 {font-size: 200% } @media all and (max-width:600px) { body {font-size: 70%} }
当网站的宽度变小到600px时,字体大小将变为所有地方的70%,这里使用了%(在这个例子中也是h1)。
Lizzans的答案是完美的! 离开它-1! 当我把它取下的时候,小猫正在死亡。
而不是fontsizevariables,只需将其设置为您的页面的标准字体大小。 我的16岁。
你可以使可复制的文本更简单。 这个解决scheme适用于我。 http://jsfiddle.net/VooDi/dka48dx8/
对于正文设置字体大小,这相当于您当前的窗口内部宽度;
为jsfiddle 560 px;
body { font-size: 560px; }
JS:
onresize=onload=function() { document.body.style.fontSize=window.innerWidth+"px" }
并以百分比表示所需的元素集字体大小
<h1 style="font-size:5%">Resize this text!!!!</h1>
就这样。 希望这有助于某人。