我正在尝试获取许多隐藏的选择元素的宽度。在 JQuery 对象上使用 width() 返回的宽度是 CSS 定义的宽度,但包括填充。但是,一旦我切换要显示的元素,调用 width() 就会返回正确的值(即不包括填充/边框/边距的宽度)。
示例 HTML:
<span id="test" style="visibility:hidden">
<select id="one">
<option>1</option><option>2</option><option>3</option>
</select>
</span>
CSS:
select {
width: 80px;
padding: 0 0 0 15px;
}
预期宽度:65,报告宽度:80
这是一个展示我的问题的 JSFiddle:http: //jsfiddle.net/2RH7C/4/
除了设置“可见性:隐藏”(而不是显示:无)或克隆/将对象移出屏幕之外,还有其他解决方法吗?我正在使用 KnockoutJS 数据绑定来控制可见性,并且该绑定设置 display: none (http://knockoutjs.com/documentation/visible-binding.html)。