编程语言
首页 > 编程语言> > javascript-如何获取Label,Button,TextArea或TextBox的字符总水平宽度?

javascript-如何获取Label,Button,TextArea或TextBox的字符总水平宽度?

作者:互联网

Label,Button,TextArea和TextBox(从现在开始缩写为LBTT)能够显示文本字符串.有什么方法可以查看已经确定大小的LBTT对象,并确定给定对象的每行可能适合的字符数.

例如,让我们说我有一个textArea,它的宽度是固定的.有没有办法问这个textArea对象它可以水平容纳多少个字符?从概念上讲,.getHorizo​​ntalCharacterWidth()方法类似吗?

这是我的“视觉” ascii标签示例. “-”和“ |”应该分别代表Label的垂直和水平边缘.

 -------
|       |
|ABCDEFG|
|       |
 -------

如您所见,此标签每条水平线最多可容纳7个字符(在这种情况下为A-G)?因此,如果您在此Label上调用我的假想的.getHorizo​​ntalCharacterWidth(),它将返回7.问题是,您将如何实现.getHorizo​​ntalCharacterWidth()?

假设我使用的是固定宽度的字体.

谢谢

解决方法:

是的,假设您说的文本区域使用等宽字体,则aTextArea.getCharacterWidth()应该给出水平可用的字符数.尽管它将仅返回html属性cols,而该属性返回浏览器的默认宽度(或您使用aTextArea.setCharacterWidth()设置的默认宽度),而忽略了CSS指定的宽度.

虽然如果您知道以像素为单位的字体大小,则可以通过将像素宽度除以像素字体大小来大致估算可见的字符数.请注意,这可能会根据字体的字符高度/字体比率而有所不同,并且某些浏览器会返回包含或不包含滚动条(如果存在)的宽度.

标签:css,html,javascript,gwt
来源: https://codeday.me/bug/20191210/2100327.html