簡體   English   中英

更改整個頁面內容的文本字體大小

[英]change text-font size of whole page content

在 javascript/css 中是否有一種方法可以通過單擊更改所有標簽、標題、段落等的文本大小,而無需明確獲取元素的 id,然后更改其字體大小。

我現在正在做的是通過 javascript 獲取元素的 id 並顯式更改其字體大小。 要清楚地了解我在做什么,請查看此鏈接或查看以下代碼

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

HTML代碼

Choose a text size:
<font size="2"><a href="javascript:void(0);" onclick="changemysize(16);">A</a></font>
<font size="4"><a href="javascript:void(0);" onclick="changemysize(20);">A</a></font>
<font size="5"><a href="javascript:void(0);" onclick="changemysize(25);">A</a></font>
<div id="mymain">
Only this text gets affected
</div>

您可以使用rem ,這在某些地方比em更好,因為em級聯而rem沒有。

所有長度都在rem中指定,您可以通過更改<html>元素的字體大小來調整大小。

另見: http : //snook.ca/archives/html_and_css/font-size-with-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]);

body標簽添加一個 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');

演示在這里: http : //jsfiddle.net/bW9fM/1/

基於此答案的替代方法

// iterate over the children of an element, and the element itself
// and excute a callback function, passing in the elements
function mapElement(element, callback){
    callback(element);    
    for(var i=0; i < element.children.length; i++){
        callback(element.children[i]);
    }
}

mapElement(
    document.querySelector('body'), 
    (e) => { 
        e.style.fontFamily = 'Arial';
        e.style.fontSize = '12pt'; 
    }
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM