我有一个保龄球网络应用程序,它允许逐帧输入非常详细的信息。它允许的一件事是跟踪每个球上击倒了哪些引脚。为了显示这些信息,我让它看起来像一个针架:
哦哦 哦哦 哦 ○
图像用于表示引脚。所以,对于后排,我有四个img标签,然后是一个br标签。它工作得很好......主要是。问题出在小型浏览器中,例如 IEMobile。在这种情况下,一个表中可能有 10 或 11 列,并且每列中可能有一个针架,Internet Explorer 将尝试缩小列大小以适应屏幕,我最终会得到类似这:
哦哦 ○ 哦哦 哦 ○
或者
哦 哦 哦 ○ 哦 ○
结构是:
<tr>
<td>
<!-- some whitespace -->
<div class="..."><img .../><img .../><img .../><img .../><br/>...</div>
<!-- some whitespace -->
</td>
</tr>
内部 div 内没有空格。如果您在常规浏览器中查看此页面,它应该可以正常显示。如果您在 IEMobile 中查看它,它不会。
有什么提示或建议吗?也许某种 那实际上并没有添加空格?
跟进/总结
我收到并尝试了几个很好的建议,包括:
- 在服务器上动态生成整个图像。这是一个很好的解决方案,但并不真正满足我的需要(托管在GAE上),而且代码比我想写的要多。这些图像也可以在第一代之后被缓存。
- 使用 CSS 空白声明。它是一个很好的基于标准的解决方案,但在 IEMobile 视图中却惨遭失败。
我最终做了什么
*低着头咕哝着什么*是的,没错,在 div 的顶部有一个透明的 GIF,大小是我需要的宽度。结束代码(简化)如下所示:
<table class="game">
<tr class="analysis leave">
<!-- ... -->
<td> <div class="smallpins"><img class="spacer" src="http://seasrc.th.net/gif/cleardot.gif" /><br/><img src="/img/pinsmall.gif"/><img src="/img/nopinsmall.gif"/><img src="/img/nopinsmall.gif"/><img src="/img/nopinsmall.gif"/><br/><img src="/img/pinsmall.gif"/><img src="/img/pinsmall.gif"/><img src="/img/nopinsmall.gif"/><br/><img src="/img/nopinsmall.gif"/><img src="/img/nopinsmall.gif"/><br/><img src="/img/nopinsmall.gif"/></div> </td>
<!-- ... -->
</tr>
</table>
和 CSS:
div.smallpins {
background: url(/img/lane.gif) repeat;
text-align: center;
padding: 0;
white-space: nowrap;
}
div.smallpins img {
width: 1em;
height: 1em;
}
div.smallpins img.spacer {
width: 4.5em;
height: 0px;
}
table.game tr.leave td{
padding: 0;
margin: 0;
}
table.game tr.leave .smallpins {
min-width: 4em;
white-space: nowrap;
background: none;
}
PS:不,我不会在我的最终解决方案中盗链别人的明确点:)