【问题标题】:Set value shows two decimal places设定值显示两位小数
【发布时间】:2014-08-21 07:00:11
【问题描述】:

编辑:reading 更多关于亚像素渲染的信息,我了解到导致小数或部分像素值的 CSS 值不是“浏览器友好的”。因此,值应设置为小数位!

我正在通过对所有子元素 (.project) 的宽度求和来计算父元素 (.container) 的宽度。到目前为止,我尝试了这个,但它不起作用。谁能帮帮我?

例如: 当我有五个子元素,每个子元素的宽度为 363.667 像素时,我想获得 364 像素的宽度。

HTML 标记

<div class="container">
    <ul id="projects">
        <li class="project"></li>
        <li class="project"></li>
        <li class="project"></li>
        <li class="project"></li>
        <li class="project"></li>
        <li class="clear"></li>
    </ul>
</div>

jQuery

$(window).on( "resize", function () {
    var width = ( $(window).width() / 3 );
    $(".project").css({ width : width.toFixed() });

    var sum = 0;
    $("#projects .project").each( function(){ sum += $(this).width(); });
    $(".container").width( sum );
}).resize();

【问题讨论】:

  • Good article on sub-pixel rendering。你为什么不使用CSS? .project { width: 20%; }
  • 我希望每个子元素的宽度为 33.33%。我觉得 jQuery 是更“准确”的解决方案。但是,阅读这篇文章让我想知道这是否是一个基本问题?我应该简单地使用不带小数位的数字来避免错误吗?

标签: jquery decimal parseint subpixel


【解决方案1】:

你能替换吗:

$(window).width(), $(this).width(),

使用硬编码值并重做测试,看看这是否是您期望的值,

.width() 将始终返回内容宽度,无论 CSS box-sizing 属性的值如何。从 jQuery 1.8 开始,这可能需要检索 CSS 宽度加上 box-sizing 属性,然后当元素具有 box-sizing: border-box 时减去每个元素上的任何潜在边框和填充。为避免这种惩罚,请使用.css("width") 而不是.width()

【讨论】:

  • 试过了,但没有解决问题。不过,我还是找到了答案——亚像素渲染。
猜你喜欢
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多