我目前使用以下代码将div直接放在焦点上的输入文本字段下方.问题是div的宽度因浏览器而异.有没有办法确保出现的div是我的输入字段的确切宽度?
// get the field position
var inputField = $('#inputfield');
var fieldDiv = $('div.divname');
var sf_pos = field.offset();
var sf_top = sf_pos.top;
var sf_left = sf_pos.left;
// get the input field size
var sf_height = inputField.height();
var sf_width = inputField.width();
fieldDiv.css("position","absolute");
fieldDiv.css("left", sf_left);
fieldDiv.css("top", sf_top + sf_height + 6);
fieldDiv.css("width", sf_width);
$('#inputfield').focus(function() {
fieldDiv.fadeIn('medium');
}).blur(function() {
fieldDiv.fadeOut('medium');
});
Run Code Online (Sandbox Code Playgroud)
我认为这可能与 IE 不尊重盒子模型有关,一些浏览器还会在宽度中包含边框,而其他浏览器则不会。
您是否尝试过使用 outterWidth() 而不是 width() ?
您还可以破解它并添加依赖于浏览器的偏移量,例如:
width += ($.support.boxModel ? 0 : 2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2429 次 |
| 最近记录: |