调整窗口大小时自动调整文本大小(字体大小)?
我一直在尝试(徒劳地)构建一个页面,其元素会随着我更改窗口大小而调整大小。我让它在图像的 CSS 中工作没有问题,但我似乎无法在文本中完成同样的工作,而且我不确定它在 CSS 中是否可能。我似乎找不到一个 jquery 脚本来完成这个任务。
当用户调整窗口大小时,我本质上希望页面动态且流畅地缩放,而用户不必调用页面缩放。这对于通过 css 的 img div 效果很好,但对于文本则不然,文本大小保持不变。
有什么想法吗?
I have been trying(in vain) to build a page whose elements would resize as I changed the window size. I have it working in css for images no problem, but I can't seem to accomplish the same for text, and I am not sure it is even possible in CSS. And I can't seem to find a jquery script that accomplishes this.
When a user resizes the window, I essentially want the page to scale dynamically and fluidly, without the user having to invoke page zoom. This works fine on my img divs via css, but not for the text, which stays the same size.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我必须自己做这件事。我所做的是为正文设置基本文本大小,并为所有其他大小设置百分比。然后,我使用一个简单的 jQuery 脚本来更改窗口调整大小时的基本大小。其他尺寸也会随之更新。
我使用了这样的东西:
在 resizeMe 函数中,我有这个:
I've had to do this myself. What I did was that I set a base text size for the body, and percentages for all other sizes. I then used a simple jQuery script to change the base size on window resize. The other sizes then update as well.
I used something like this:
and in the resizeMe-function, I had this:
尝试使用 FitText 等 jQuery 插件。它会自动调整文本大小以适合父元素的宽度。
另一个具有相同目标的 jQuery 插件是 BigText (演示)。
Try a jQuery plugin like FitText. It automatically sizes text to fit the width of the parent element.
Another jQuery plugin with the same goal is BigText (demo).
您可以使用 CSS3 媒体查询 来完成此操作,根据浏览器指定不同的基本字体大小尺寸。 A List Apart 上有一篇关于此的好文章
对于 IE 支持,您可能会能够使用 CSS 表达式 破解它,
这需要您使用固定的基本字体大小,例如在
body
标记上,以及其他地方基于百分比或em
的大小。You can do this with CSS3 media queries, specifying different base font-sizes depending on browser size. There is a good article for this on A List Apart
For IE support you might be able to hack it using CSS expressions
This requires you to use a fixed base font-size, for instance on the
body
tag, and percentage orem
based sizes elsewhere.基于 Lizza 的答案,这里是一个使用宽度和高度的平方根来获得比例尺寸的版本:
演示:http://jsfiddle.net/tomsoderlund/26Gad/embedded/result/
Building on Lizzan's answer, here is a version using the square root of both width and height to get a proportional sizing:
Demo: http://jsfiddle.net/tomsoderlund/26Gad/embedded/result/
我正在使用 http://practicaltypography.com/end-credits.html#bio< 中的技巧/a> M.巴特里克:
I'm using the trick from http://practicaltypography.com/end-credits.html#bio M. Butterick:
roryf 走在正确的道路上!
媒体查询是答案(之一)。
这里的技巧是从正文开始使用 % 表示字体大小。这样字体大小就会被继承,当你在正文中更改它时,它会在各处发生变化。
尝试如下:
当网站宽度小于 600px 时,字体大小将变为原来大小的 70%,其中使用 %(本例中也使用 h1。)
roryf is on the right track!
Media Queries is (one of) the answer(s).
The trick here is to use % for font sizes everywhere starting from body. This way the font size get's inherited and when you change it in body, it get's changed everywhere.
Try something like:
When the website width gets smaller then 600px, then the font size will turn to 70% of what it was everywhere, where % is used (also h1 in this example.)
利赞的回答很完美!将 -1 保留在原来的位置!当我把它移走时,小猫们都死了。
只需将其设置为页面的标准字体大小即可,而不是使用 fontsize 变量。我的是16岁。
Lizzans answer is perfect! Leave the -1 where it is! Kittens were dying all over the place when I removed it.
Instead of the fontsize variable, just set it to the standard fontsize for your page. Mine was 16.
您可以使可调整大小的文本变得更加简单。这个解决方案对我有用。
http://jsfiddle.net/VooDi/dka48dx8/
对于body设置font-size,相当于您当前的窗口内部宽度;
对于 jsfiddle 560 px;
js:
并为所需的元素设置字体大小(以百分比为单位)
仅此而已。希望这对某人有帮助。
You can make resizible text more simple. This solution works for me.
http://jsfiddle.net/VooDi/dka48dx8/
For body set font-size, that equivalent to your current window inner width;
for jsfiddle 560 px;
js:
and for needed element set font size in percent
Thats all. Hope this helps someone.
看看这个:https://jsfiddle.net/bheng/dp5jh7nu/
Check this out : https://jsfiddle.net/bheng/dp5jh7nu/