目标:让按钮具有最小宽度,但当文本长于最小宽度时会展开,就像其他语言一样。
问题是在兼容模式下的 IE8 或 9 中,按钮似乎移出其容器的右侧。不幸的是,我无法提供任何代码或指向 jsfiddle 的链接,因为它在 IE8 兼容模式下不起作用,但这里有一些问题的图片。
No min-width
Buttons 正常显示,但显然没有显示我们想要的最小宽度。
使用 min-width
IE 布局显示 100px 的宽度,这是应该的,但按钮似乎移动到容器之外(参见图像的右下角)。另请注意,其他按钮的文本不再位于我认为相关的中心。
HTML
<table width="97%" border="1" class="whiteTable" style="margin: 10px;">
<tr>
<td colspan="2">
<div style="position: static; float: left; z-index: 1; width: 100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<div id="pnlInfo">
<input name="ucAttrEdit$cmdInfo" class="button small" id="ucAttrEdit_cmdInfo" type="submit" value="Info" />
</div>
</td>
<td align="right" colspan="2">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="Pad5">
<div id="pnlOk">
<input name="ucAttrEdit$cmdOk" class="button small" id="ucAttrEdit_cmdOk" type="submit" value="OK" />
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
CSS
button,
.button,
input[type="submit"],
input[type="reset"] {
background: #4586b6;
color: #FFF;
border: 0;
padding: 3px;
font-size: 13px;
display: inline-block;
height: 22px;
cursor: pointer;
margin: 0 3px 0 0;
width: auto; }
button.small,
.button.small,
input[type="submit"].small,
input[type="reset"].small {
min-width: 100px; }
.Pad5{padding:5px}
table.whiteTable {
background: #F6F6F6;
border: 1px solid #CCC; }
注意:使用上面的代码并将 IE9 置于浏览器模式:IE9 兼容模式和文档模式:IE7 标准复制了我遇到的问题。