【发布时间】:2020-04-14 23:29:15
【问题描述】:
我在 index.html 中有一个按钮,它是在 html 文件而不是 javascript 文件中创建的。我正在尝试使用纯 JavaScript 获取按钮的宽度。我没有使用 jQuery,也不会选择任何其他 JS 库。我尝试过的:
function resizeButtom() {
var btn = document.getElementById('btn-resize-me');
alert(btn.style.width); // alerts blank
alert(parseInt(btn.style.width); // alerts NaN, because the value is a blank
btn.style.width = toString(parseInt(btn.style.width) - 20) + "px"; // does not work!
}
<button id="btn-resize-me" onClick="resizeButton();"></button>
样式表.css
.menu-btn {
background-color: #F3F2F1;
border: none;
color: black;
padding: 7px 12px 7px;
text-align: center;
text-decoration: none;
display: block;
font-size: 20px;
float: left;
height: 100%;
width:auto;
}
我无法设置按钮宽度,因为它是浏览器上加载的字体宽度(默认字体可能不会在特定浏览器上加载)与左侧和右侧 14px、7px 填充的总和。
动机: 当我按下一个按钮时,我希望另一个按钮获得 1px 纯黑色的边框。这是完美的,但是由于边框,按钮的宽度大了 2px,将其他菜单项按钮移动了 2px,这看起来很奇怪。我虽然将更改后的按钮(现在带有边框:1px 纯黑色;)调整为 2px 可以解决这个问题。答案提供了一种调整大小的方法,但它是近似的,导致新的大小,保持填充,看起来不自然和丑陋。
【问题讨论】:
-
你拼写错了
resizeButton,你需要在Javascript的第4行多写一个)。 -
添加通过字体大小和填充设置btn宽度的代码:)
标签: javascript button resize