[英]how to change the font-size proportionally to the change size of the window in CSS3 or javascript
我做了一些網絡應用程序,但我對font-size有一些問題。 如何在 CSS3 或 javascript 中與窗口的更改大小成比例地更改字體大小?
這樣做的理想方法是使用vw
單位,它被定義為視口寬度的1/100(因此得名)。 因此,例如,如果您希望文本始終為瀏覽器寬度的 4.5%,則可以使用大小:
font-size: 4.5vw;
...從理論上講,這應該可行。 不幸的是,您會發現它並沒有像預期的那樣工作:WebKit 瀏覽器(至少)中存在一個錯誤,其中字體大小的值不是實時更新的(盡管它適用於所有其他維度)。 您需要觸發重繪以更改字體大小,這可以通過從 JavaScript 更新z-index
屬性來完成:
window.addEventListener('resize', function(){
document.getElementById('myEl').style.zIndex = '1';
}, false);
這可能會造成一些波動,但這意味着您不必在 JavaScript 中計算任何實際尺寸,也不需要像媒體查詢那樣使用“階梯式”尺寸。
這樣做的理想方法是結合 VW 字體大小和 @media 查詢。 原因是:
1) em 本身不會按窗口大小重新縮放
2) 對於低於 800px 的分辨率/屏幕,vm 本身會太小。
因此,實現這一目標的正確方法是:
對於我的響應式網格(將 1/2 列設置為 768px 寬度以下的 100% 寬度),它看起來像這樣:
<style>
.prop-text{font-size:1.0vw}
@media (max-width : 768px) {
.prop-text{font-size:2.0vw}
}
/*other media queries here - fit font size to smartphone resolutions */
</style>
<div class="prop-text">your text is here</div>
在px
設置您的基本字體大小(您在 css 中為body
元素定義的那個),然后在頁面其余部分的任何地方使用em
單位設置相對於那個的字體大小,然后您可以使用媒體查詢來更改字體大小只需更改您的基本字體,您的所有頁面,如下所示:
body {
font-size: 15px;
}
@media (max-width: 1000px) {
body { font-size: 1.3em; }
}
@media (max-width: 500px) {
body { font-size: 1.1; }
}
我認為最好的方法可能是vh ,因為字體大小會改變文本的高度。 使用vh意味着即使用戶調整頁面大小或屏幕很小,文本也將始終愚弄頁面的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.