我正在开发这个自定义选择菜单,它是我正在开发的表单插件的一部分。
在我的CSS中,我有这样的东西:
.qval-select span {
font-size: 15px;
display: block;
padding: .3em .8em;
cursor: pointer;
}
这span
是自定义选择菜单中的一个项目。
在某些时候,我需要知道该项目outerHeight()
并进行一些计算。我遇到的问题是 Chrome 报告的高度25px
和所有其他浏览器(IE8、IE9、Firefox)报告的高度27px
。有趣的是,似乎只有 Chrome 才能获得我正在寻找的号码。
为了明白我的意思,我在这里上传了一个例子:
http://spacirdesigns.com/idealforms/。
当您打开自定义选择菜单并使用向上和向下箭头滚动时,问题就很明显了。正如你所看到的,除了 Chrome 之外的所有浏览器都会额外计算 2 个像素并搞砸整个事情。
如果您打开控制台,您可以看到高度日志并与其他浏览器进行比较。
px
如果我为一切设置一个高度,span
一切正常,但拥有自定义选择的美妙之处在于能够使其适应多种尺寸,所以我需要em
. 我也尝试设置字体em
并更改字体,但没有。
有人可以告诉我这里发生了什么,为什么?它快把我逼疯了。
scrollToItem: function() {
// Select.sub.scrollTop(0);
var idx = Select.items.find('.selected').parent().index(),
height = Select.items.outerHeight(),
items = Select.items.length,
allHeight = height * items,
curHeight = height * (items - idx);
console.log(height);
Select.sub.scrollTop(allHeight - curHeight);
},