设置: 我正在使用 jQuery Mobile 为 iOS 和 Android 开发一个 PhoneGap/Cordova 应用程序。该应用程序需要一个我自己创建的日历,因为详尽搜索插件并没有产生任何满足我所有需求的结果。我正在使用七个 div - 一个用于一周中的每一天 - 它们都是float:left
'd 并且每个都设置为width:14.28571428571429%
因为这是 100% 的 1/7。我应该提到日历 div 容器设置为width: 100%
. Chrome 开发者工具还确认容器 (id="calendar") 正在使用 100% 的宽度空间。
问题:在桌面上一切看起来和工作都很好,但是一旦我开始在我的 iPhone 或 iPad 上进行测试,日历右侧会出现一小部分(大约 2%)。
支持细节:我对此进行了相当多的研究,似乎这是由于亚像素渲染造成的。我在 WikiPedia 上阅读了关于 Subpixel Rendering 的内容,发现这篇两年前的文章是关于不同浏览器处理小部分像素的方式的。在我看来,移动 Safari 中的 0.28[…]% 被砍掉了。 问题是,我不知道如何解决它。 更让我困惑的是,这似乎是一个webkit问题,但日历在桌面 Chrome 中呈现得很好。
代码:
<div id="calendar">
<div class="cal-week">
<a href="javascript:monthPrev();">
<div class="day day-inactive">28</div>
</a>
<a href="javascript:monthPrev();">
<div class="day day-inactive">29</div>
</a>
<a href="javascript:monthPrev();">
<div class="day day-inactive">30</div>
</a>
<a href="javascript:monthPrev();">
<div class="day day-inactive">31</div>
</a>
<a href="javascript:selectDate(11,01,2012);">
<div class="day">1</div>
</a>
<a href="javascript:selectDate(11,02,2012);">
<div class="day">2</div>
</a>
<a href="javascript:selectDate(11,03,2012);">
<div class="day">3</div>
</a>
<div class="clearfix"></div>
<!-- fun fact: this is the first week of November, 2012 -->
</div>
[…]
</div><!-- /calendar -->