Label,Button,TextArea和TextBox(从现在开始缩写为LBTT)能够显示文本字符串。有没有办法查看已经大小的LBTT对象,并确定可能适合给定对象的每一行的字符数。
例如,让我们说我有一个固定在其宽度的textArea。有没有办法询问这个textArea对象可以水平保存多少个字符?从概念上讲,类似于.getHorizontalCharacterWidth()方法?
这是我的“视觉”ascii标签示例。 “ - ”和“|”应该分别代表Label的垂直和水平边缘。
-------
| |
|ABCDEFG|
| |
-------
如您所见,此标签每条水平线最多可容纳7个字符(在本例中为A-G)?所以,如果你在这个Label上调用我想象的.getHorizontalCharacterWidth(),它将返回7.问题是,你将如何实现.getHorizontalCharacterWidth()?
假设我使用固定宽度的字体。
谢谢
答案 0 :(得分:3)
是的,假设您说文本区域使用等宽字体,aTextArea.getCharacterWidth()
应该给出水平可用的字符数。虽然它只返回html属性cols,它返回浏览器默认宽度(或者使用aTextArea.setCharacterWidth()
设置它的任何内容)忽略CSS指定的宽度。
虽然如果您知道像素的字体大小,您可以通过将像素宽度除以像素字体大小来粗略估计可见的字符数。请注意,这可能会因字体的字符高度/比例而有所不同,并且某些浏览器会返回宽度,包括或排除滚动条(如果存在)。
答案 1 :(得分:0)
在两种情况下,这已经以普通的html属性形式存在。
文字区域:
<textarea name="" cols="10" rows=""></textarea>
文字输入:
<input name="" type="text" size="10" />
更一般的案例,标签和按钮更难。例如,'i'字符比'm'窄得多。如果将使用限制为等宽字体,则会更容易,但这可能不是您想要的。
答案 2 :(得分:0)
我假设您希望以文本区域或类似控件中的某种智能方式包装文本。
我前一段时间问similar question,基本上无法确定宽度。
您唯一的解决方案是使用可用的HTML属性或假设每个字符具有相同的平均宽度,并使用一些缓冲区进行计算。