【发布时间】:2012-10-30 08:12:14
【问题描述】:
设置: 我正在使用 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%)。 p>
支持细节:我对此进行了相当多的研究,看来这是由于亚像素渲染造成的。我阅读了Subpixel Rendering on WikiPedia 并发现this two year old article 关于不同浏览器处理小数像素的方式。在我看来,移动 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 -->
【问题讨论】:
-
这个周末如果我能找到时间我会尝试建立一个jsFiddle。
-
我设置了一个 JSFiddle 来说明我遇到的问题:JSFiddle Example 通过桌面查看时,一切看起来都很好。在 iOS 上查看时,请注意行的右侧大约有 2% 的边距。
-
我错了 - 桌面 Safari 也出现了同样的问题。
标签: javascript css jquery-mobile subpixel