javascript 如何以 em 为单位增加高度

标签 javascript html css

如何使用 JavaScript 将 html 元素的高度增加一定数量的 em 单位?

这是一个不起作用的示例,但演示了我正在尝试做的事情。在 html 页面的正文中:

<textarea id="myTextArea" style="height:10em" onclick="test()"></textarea>

然后,在脚本中:

function test() {
    // get the height, assign to var x
    var x = document.getElementById("myTextArea").style.height;

    // calculate height increase by 10 em
    x += "10em";

    // increase the height by amount calculated
    document.getElementById("myTextArea").style.height = x;
}

我想增加 em 单位,而不是像素。

最佳答案

获取计算样式并使用calc求和:

el.style.height = 'calc(' + getComputedStyle(el).height + ' + 10em)';

var el = document.querySelector('textarea');
document.querySelector('button').onclick = function() {
  el.style.height = 'calc(' + getComputedStyle(el).height + ' + 1em)';
}
<button>Increase height</button><br />
<textarea style="height:10em"></textarea>

关于javascript 如何以 em 为单位增加高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021935/

相关文章:

javascript - 多个 IP 的正则表达式,以逗号分隔,带或不带子网

javascript - 即使将元素插入其中后,数组元素也是未定义的

php - 如何从 PHP 显示 JavaScript 警报?

javascript - 使用 window.open() 打开带有链接的新选项卡,我希望该选项卡在 15 秒后自动关闭

javascript - 按下鼠标时将键盘滚动事件从一个元素转发到另一个元素

javascript - 如何显示来自 JSON 的视频?

JavaScript 调整

javascript - 如何通过 CSS 在 div 中插入外部 HTML?

存在填充的 CSS 高度过渡(现有答案未涵盖)

html - 如何摆脱 HTML 中正文列之间的边距差距(使用 css 模板但自己编辑了很多)