如何使用JavaScript动态地将所有字体减少到50%?

时间:2014-01-13 09:10:12

标签: javascript

我有一个网页,其中各种字体都是使用px尺寸分配的。我希望能够使用JavaScript动态地将所有字体大小更改为原始大小的50%。我尝试使用CSS规则,但意识到您无法更改具有px定义大小的字体大小。

3 个答案:

答案 0 :(得分:5)

var elems = document.querySelectorAll('*');

for (var i=elems.length; i--;) {
    var f_size = getComputedStyle(elems[i]).fontSize;
    var numb   = f_size.replace(/\D/g,''); // the number
    var val    = f_size.replace(/\d/g,''); // px

    elems[i].style.fontSize = (+numb / 2) + val;    
}

FIDDLE

答案 1 :(得分:2)

如果jQuery是一个选项,这很简单:

$('*').css('font-size', function() {  
    return (parseInt($(this).css('font-size')) * 0.5);
});

请参阅jsFiddle Demo

答案 2 :(得分:0)

px字体可以设置为50%,但不建议仅使用js。

最常见的计划是在css中定义基本字体大小,通常在正文上,例如:

body { font-size: 14px; }

以及用em定义的所有其他元素;例如:

h2.titleExample {
    font-size: 2em; //this will be 28px for the base font-size is 14px
}

您可以使用javascript(jquery示例)

更改基本字体大小
function switchFS(fontSize) {
    $('body').css('font-size': fontSize);
};
switchFS('20px'); //or even swtichFS('2em');

或者您只需在css文件中定义所有样式。使用font-size类来切换font-size;例如:

//css class
.font-normal { font-size: 14px; }
.font-large { font-size: 16px; }
.font-exlarge { font-size: 18px }
//js file
function switchFS(cls) {
    $('body').removeClass().addClass(cls);  
};
switchFS('font-large'); //call to get larger