【问题标题】:IE8 CSS Bug? Not displaying DIV correctly with javascriptIE8 CSS 错误?无法使用 javascript 正确显示 DIV
【发布时间】:2010-11-09 05:40:11
【问题描述】:

这个视频最能说明问题:http://www.screencast-o-matic.com/watch/cQ1Oc9f1L

目录基本上都在这里:http://www.ipalaces.org/uploaderprogress/grrrrrr.html

是使用 YUI.js 作为上传脚本的问题。 YUI 用每个事件的新信息更新表格的行。所以我让它用一些 CSS/HTML 更新它,以便它有一个进度加载栏。它适用于除 IE 以外的所有浏览器。我不确定这是一个已知的渲染错误还是什么,是否有修复?

working-demo.html 基本上表明,如果你只是使用 javascript 调整 div 的大小,IE 会很好地呈现它。它刚刚用新的 div 信息更新了表格的行似乎会导致呈现问题。

【问题讨论】:

    标签: javascript css upload internet-explorer-8 yui


    【解决方案1】:

    我找到了解决方案。

    如果我将它包含在 HTML 中,那么它将正常工作:

    <div class='progressbar-completed' style='visibility: hidden;'></div>
    

    当在 javascript 中动态创建背景文件时,似乎 IE 无法维护后台文件的“内存”。

    将DIV放在html本身中似乎可以使后台文件的内存在IE中持久化。

    【讨论】:

    • 其他人能否弄清楚为什么会发生这种情况以及如何解决而不是解决问题。
    【解决方案2】:

    我无法重现该错误,因为您应用了该修复程序。但我确实看过来源。您为进度条设置动画的方式只是在乞求错误。在 IE8 中尝试兼容模式,您会看到它在缩小而不是在增长(因为元素居中),并且进度条完成的元素比容器大 2 倍。在 Chrome 和 Safari 中也是如此。

    我会这样做:


    (来源:maikumori.com

    制作一个常量,例如 250px。然后你必须制作一个与 A 大小相同的背景图像,其中包含进度条,就好像它处于 100% 时一样。

    然后:

    background-position = B = -1 * Math.Round(A * UploadedSize / FileSize)

    优点:

    • 标记更少
    • 如果您制作背景图片 2*A 和 B = B + A,那么您可以为“空白”空间创建自定义图片,因此您可以轻松制作更精美的进度条
    • 应该在大多数现代和不太现代的浏览器中工作
    • 如果用户禁用了 css/javascript,也不会造成混乱

    缺点:

    • A 必须是常数
    • 尚未测试 =(

    附: 抱歉,颜色令人眼花缭乱,之后无法更改... mspaint

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多