我有一些动态填充选择框的旧版 JavaScript 代码。在 Firefox 中,它看起来不错。在 IE7 中,布局是错误的(见下文)。如果我重新调整窗口大小,它会正确重新呈现选择框。
这是重新调整浏览器窗口大小之前的屏幕截图。
下面是代码完整的源代码:
<html>
<head>
<title> Test </title>
</head>
<script type="text/javascript">
<!--
var MyOptions = {
"A" : "Option 1 (A)",
"B" : "Option 2 (B)",
"C" : "Option 3 (C)",
"D" : "Option 4 (D)"
}
var MyForm = {
loadSelectBox : function () {
dropDown=document.getElementById("my_select_box");
while(dropDown.hasChildNodes()) {
dropDown.removeChild(dropDown.lastChild);
}
var firstOption = document.createElement('option');
firstOption.value = '';
firstOption.innerHTML = 'select a filter';
dropDown.appendChild(firstOption);
for (var key in MyOptions) {
var option = document.createElement('option');
option.value = key;
option.innerHTML = MyOptions[key];
dropDown.appendChild(option);
}
}
}
function init() {
MyForm.loadSelectBox();
} //-->
</script>
<body onload="init();">
<div style="margin:0px 10px 0px 10px; width:98%">
<div style="float:left;">
<select id="my_select_box">
<!-- options go here -->
</select>
</div>
<div style="float:left;margin-left:25px;">
<input type="checkbox" id="is-foo" style="visibility:visible;">
<label for="is-foo" style="visibility:visible;">Some label</label>
<input type="button" value="Submit">
</div>
</div>
<br class="clear"/>
</body>
</html>
我该怎么做才能在 IE7 中正确地制作这个布局?我需要动态填充选择框(这是代码的简化版本;实际应用程序正在从 Web 服务获取值)。
我尝试使用长值(JavaScript 将丢弃)初始化选择框,即
<select id="my_select_box">
<option name="">Really long value that will be removed but is here for padding.</option>
</select>
然而,这仍然看起来不正确,感觉就像一个黑客。是否有一些 css 可以<div>
很好地使两个元素布局?