Javascript 使用JS获取按钮的宽度?

Javascript 使用JS获取按钮的宽度?,javascript,button,resize,Javascript,Button,Resize,我在index.html中有一个按钮,它是在html文件而不是javascript文件中创建的。我正在尝试使用纯脚本获取按钮的宽度。我没有使用jQuery,也不会选择它或任何其他JS库。我所尝试的: 函数resizeButtom(){ var btn=document.getElementById('btn-resize-me'); 警报(btn.style.width);//警报为空 警报(parseInt(btn.style.width);//警报NaN,因为该值为空 btn.style.

我在index.html中有一个按钮,它是在html文件而不是javascript文件中创建的。我正在尝试使用纯脚本获取按钮的宽度。我没有使用jQuery,也不会选择它或任何其他JS库。我所尝试的:

函数resizeButtom(){
var btn=document.getElementById('btn-resize-me');
警报(btn.style.width);//警报为空
警报(parseInt(btn.style.width);//警报NaN,因为该值为空
btn.style.width=toString(parseInt(btn.style.width)-20)+“px”//不工作!
}

您可以使用
offsetWidth
检索该btn,也可以使用该btn的设置宽度来检索该btn,您不需要
字符串
: 更新:增加了更改按钮字体大小的功能。
函数resizeButton(){
var btn=document.getElementById('btn-resize-me');
警报(parseInt(btn.offsetWidth));
btn.style.width=(parseInt(btn.offsetWidth)-20)+“px”;btn.style.fontSize=“12px”;
警报(parseInt(btn.style.width));
}
#btn调整我的大小{
背景色:#F3F2F1;
边框:1倍纯灰色;;
颜色:黑色;
填充:7px 12px 7px;
文本对齐:居中;
文字装饰:无;
显示:块;
字体大小:20px;
浮动:左;
身高:100%;
宽度:自动;
}

hello
您可以使用
offsetWidth
检索该btn,对于该btn的设置宽度,您不需要
toString
: 更新:增加了更改按钮字体大小的功能。
函数resizeButton(){
var btn=document.getElementById('btn-resize-me');
警报(parseInt(btn.offsetWidth));
btn.style.width=(parseInt(btn.offsetWidth)-20)+“px”;btn.style.fontSize=“12px”;
警报(parseInt(btn.style.width));
}
#btn调整我的大小{
背景色:#F3F2F1;
边框:1倍纯灰色;;
颜色:黑色;
填充:7px 12px 7px;
文本对齐:居中;
文字装饰:无;
显示:块;
字体大小:20px;
浮动:左;
身高:100%;
宽度:自动;
}
你好
函数resizeButton(){
var btn=document.getElementById('btn-resize-me');
警报(btn.offsetWidth);//警报
btn.style.width=Math.max(btn.offsetWidth-20,0)+“px”;//有效
//宽度减少了约20,直到无法使用为止
}
一些文本
函数resizeButton(){
var btn=document.getElementById('btn-resize-me');
警报(btn.offsetWidth);//警报
btn.style.width=Math.max(btn.offsetWidth-20,0)+“px”;//有效
//宽度减少了约20,直到无法使用为止
}


某些文本
我无法设置宽度,因为它取决于用户的web浏览器以及字体/文本的显示方式。当前宽度是字体大小宽度+14px,因为左右两侧都有7px的填充。@realanwer仅此而已,但必须在此处进行测试。:)@实际上,我们只是测试上面的代码,没有设置宽度,它就可以工作。我在我的网站上有上面的代码,但它不工作。这就是为什么我问穆罕默德这个问题。如果不设置宽度,则尝试访问宽度时会出现空白。空白不是数字。我无法得到按钮的宽度。对不起,这是正确的!但是,上面代码的问题是,按钮内的文本不再居中,宽度只是向左拉(变得更小,更接近按钮文本)。这看起来很难看,不是我要找的。我还有文本对齐:居中。另外:文本的初始宽度是14.213,但在将其变小然后变大后,宽度不再是14.213。我无法设置宽度,因为它取决于用户的web浏览器以及字体/文本的显示方式。当前宽度是字体大小宽度+14px,因为左侧和右侧都有7px的填充。@realanwer仅此而已,但不知何故,必须在此处对其进行设置以进行测试。:)@实际上,我们只是测试上面的代码,没有设置宽度,它就可以工作。我在我的网站上有上面的代码,但它不工作。这就是为什么我问穆罕默德这个问题。如果不设置宽度,则尝试访问宽度时会出现空白。空白不是数字。我无法得到按钮的宽度。对不起,这是正确的!但是,上面代码的问题是,按钮内的文本不再居中,宽度只是向左拉(变得更小,更接近按钮文本)。这看起来很难看,不是我要找的。我还有文本对齐:居中。另外:文本的初始宽度是14.213,但在将其变小然后变大后,宽度不再是14.213。我无法设置宽度,因为它取决于用户的web浏览器以及字体/文本的显示方式。当前宽度是字体大小宽度+14px,因为左侧和右侧有7px的填充。您可以将宽度设置为大于显示最宽宽度的web浏览器的宽度。您可以使用
initial
设置为默认宽度,但当您获得宽度时,不能减去它。另外,将宽度设置为小于默认值将切断文本。当我将按钮设置为大于web浏览器宽度时,我会得到一个损坏的网站。在本例中,设置初始值是毫无意义的,因为我想编辑宽度。该答案将在按下按钮大约5次后,使按钮的宽度为0,从而使所述按钮右侧的按钮直接位于所述按钮内的文本旁边。这绝对不是我的用户想要体验的。您需要删除填充以使其完全为零。否则,您可以删除/隐藏元素。我无法设置宽度,因为它取决于用户的web浏览器及其显示字体/文本的方式。当前宽度是字体大小宽度+14px,因为左侧和右侧有7px的填充。您可以将宽度设置为大于显示宽度的web浏览器的宽度