首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用纯JS将宽度与高度相等为CSS规则

如何使用纯JS将宽度与高度相等为CSS规则
EN

Stack Overflow用户
提问于 2022-08-29 08:17:02
回答 3查看 39关注 0票数 -1

如何使用纯JS使宽度与高度相等成为CSS规则?也许,在CSS中有一个解决方案。

CSS

代码语言:javascript
复制
#animation-2 > div.line {
  height: 10%;
  background: red;
}

JS

代码语言:javascript
复制
let line = document.querySelector('.line');
let height = line.offsetHeight;
document.querySelector('.line').style.width = height;

它不起作用。我要以像素为单位的价值。我能忘了加点什么吗?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2022-08-29 08:21:06

你忘了"px“后缀:

代码语言:javascript
复制
let line = document.querySelector('.line');
let height = line.offsetHeight;
document.querySelector('.line').style.width = height + 'px';

https://jsfiddle.net/yr5eu2gn/

票数 2
EN

Stack Overflow用户

发布于 2022-08-29 08:21:11

存储在line.offsetHeight中的值是一个number计数像素,而elem.style.width需要一个带有单位的字符串。

因此,你必须写

代码语言:javascript
复制
document.querySelector('.line').style.width = height + 'px';
票数 0
EN

Stack Overflow用户

发布于 2022-08-29 08:45:11

offsetHeight没有按百分比计算大小。它以像素为单位。所以,你需要得到父母的高度以及计算大小的百分比。

此外,您还需要添加您想要使用的单元以及Javascript只保存数字。

编辑:嗯..。只是看到你的编辑,你想要它的像素而不是百分比。希望这能帮上忙。

代码语言:javascript
复制
let line = document.querySelector('.line');
let height = line.offsetHeight;
let parentHeight = line.offsetParent.offsetHeight;
let percentHeight = Math.round(100 * height / parentHeight);
line.style.width = percentHeight+"%";
line.innerHTML = percentHeight;
代码语言:javascript
复制
#animation-2{
height: 100vh;
}

#animation-2 > div.line {
  height: 10%;
  background: red;
}
代码语言:javascript
复制
<div id="animation-2">
<div class="line"></div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73525929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档