javascript - 如何在javascript中将“5px”添加到当前字体大小
问题描述
我试图在单击时更改类的字体大小,我唯一的问题是我不想将 fontSize 更改为固定数字,而是想将“5px”添加到已经当前的 fontSize。
JavaScript:
function bigger() {
var e, i;
e = document.querySelectorAll(".example");
for (i = 0; i < e.length; i++) {
e[i].style.fontSize = "20px";
}
}
解决方案
更好的方法是使用 css 变量
示例代码:
(function()
{
const
fSzProp = '--fsize'
, Root = document.documentElement
, gRoot = getComputedStyle(Root)
, btnInc = document.querySelectorAll('button[data-inc-font]')
;
var fSizeVal = parseInt(gRoot.getPropertyValue(fSzProp))
;
btnInc.forEach(bt=> bt.onclick=()=>
{
fSizeVal = Math.max( 6 , (fSizeVal + Number(bt.dataset.incFont)))
Root.style.setProperty(fSzProp, `${fSizeVal}px`)
})
}
)()
:root {
--fsize : 16px;
}
.elements {
font-size : var(--fsize );
}
<p>Set Font to :
<button data-inc-font="+5"> + 5px </button>
<button data-inc-font="-5"> - 5px </button>
</p>
<p class="elements"> hello world 1</p>
<p class="elements"> hello world 2</p>
推荐阅读
- visual-studio - 如何将 .NET Core 添加到 Visual Studio 2015 Pro
- android - 印地语/非英语单词显示不正确,使用字符串作为数据类型
- python - 在 Python 中解析单个 qouted 字典键和值
- java - Java:如何每分钟发送 x 封电子邮件
- php - FPDF:第一页的页脚与第二页的数据一起打印
- javascript - 正则表达式删除 {{ }} 之间的空格
- c - Heap buffer overflow on sprintf
- ios - 目标c如何根据选择第一个文本字段项目删除第二个和第三个文本字段中的项目
- spring-boot - gradle - How to start spring boot server before integarion test - so easy with maven
- chart.js - stepsize x-axe with time string labels