Javascript 更改整页内容的文本字体大小

Javascript 更改整页内容的文本字体大小,javascript,html,css,Javascript,Html,Css,在javascript/css中有没有一种方法可以让我在一次单击中更改所有标签、标题、段落等的文本大小,而无需显式获取元素的id,然后更改其字体大小 我现在所做的是通过javascript获取元素的id,并显式更改其字体大小。要清楚地了解我在做什么,请检查此项或检查以下代码 <script type="text/javascript"> function changemysize(myvalue) { var div = document.getElementById("my

在javascript/css中有没有一种方法可以让我在一次单击中更改所有标签、标题、段落等的文本大小,而无需显式获取元素的id,然后更改其字体大小

我现在所做的是通过javascript获取元素的id,并显式更改其字体大小。要清楚地了解我在做什么,请检查此项或检查以下代码

<script type="text/javascript">
function changemysize(myvalue) {
    var div = document.getElementById("mymain");
    div.style.fontSize = myvalue + "px";   
}
</script>

函数更改MySize(myvalue){
var div=document.getElementById(“mymain”);
div.style.fontSize=myvalue+“px”;
}
HTML代码

选择文本大小:
只有此文本会受到影响

主体标记中添加一个id,然后继续使用JavaScript更改其字体大小。这将更改网页中每个元素的字体大小!就这么简单

我建议使用
ems
作为设置字体大小的方法。这样,使用1个标记,您可以相对地调整每个元素的字体大小,而不是指定特定的大小。例如:

body {
  font-size: 1em;
}

h1 {
  font-size: 1.5em;
}

h2 {
  font-size: 1.3em;
}

p.large {
  font-size: 1.2em;
}
然后你可以对身体应用一个类,就像这样

body.enlarged {
  font-size: 1.3em;
}
它将分别缩放所有元素的字体大小。javascript代码如下所示:

document.body.classList.add('enlarged');

此处演示:

您可以使用
rem
,这在某些地方优于
em
,因为
em
级联而
rem
不级联

由于所有长度都在
rem
中指定,您可以通过更改
元素的字体大小来调整大小

另请参见:

为我工作:

function changeFont(element){
    element.setAttribute("style",element.getAttribute("style")+";font-family: Courier New");
    for(var i=0; i < element.children.length; i++){
        changeFont(element.children[i]);
    }
}
changeFont(document.getElementsByTagName("body")[0]);
函数更改字体(元素){
element.setAttribute(“style”,element.getAttribute(“style”)+“字体系列:Courier New”);
for(var i=0;i
基于

//迭代元素的子元素和元素本身
//并执行回调函数,传入元素
函数mapElement(元素,回调){
回调(元素);
for(var i=0;i{
e、 style.fontFamily='Arial';
e、 style.fontSize='12pt';
}
);

或只是简单地设置body的样式无需标识body,只需使用
document.body
。为什么要将常规js与jquery混合使用?@BramVanroy jquery用于演示绑定处理程序;这不是问题的一部分(他绑定了自己的处理程序,albiet的方式很糟糕)问题没有用jQuery标记,因此我没有使用jQuery的
.addClass()
。使用库并不意味着不能使用原始JS。如果它能让你的生活变得更好,这里有一个,还有一个。非常方便的提示!遗憾的是,它需要IE9 plus,因为
ems
既可以是福也可以是祸。从现在起,如果我不关心旧的IEs,我可能会使用
rem