【问题标题】:Refreshing div (cause browse to redraw it)刷新 div(导致浏览重绘它)
【发布时间】:2009-03-24 01:26:11
【问题描述】:

在 Web 应用程序中,我在动态内容方面遇到了一些问题 - 表单被隐藏或显示在 jQuery UI 选项卡控件上方会导致呈现问题,直到用户将鼠标悬停在选项卡上,然后导致选项卡标题在正确的位置重绘。

它只发生在 IE7 中,作为一个快速的 hack,我在显示表单后执行此操作以在 IE 中刷新选项卡的 div:

$('#tabs').css('display', 'none').css('display', 'block');

我只是想知道是否有更合适/更强大的方法来使div 元素重绘自身/重新计算页面上元素的布局,因为我担心我的方法可能会产生不必要的副作用在其他浏览器上。

【问题讨论】:

    标签: javascript jquery jquery-ui tabs


    【解决方案1】:

    猜测,但可能是hasLayout

    尝试添加类似的内容:

    #tabs {
      zoom: 1;
    }
    

    【讨论】:

    • 确实如此。 hasLayout 的弊端将在 IE8 标准模式下被废除,我们放心。
    • 我快速浏览了一下,似乎 #tabs div 已经 hasLayout=true ... 虽然我将尝试将 zoom: 1 应用于上面显示的动态表单,我相信确实如此目前没有 hasLayout=true。
    【解决方案2】:

    我曾经遇到过类似的问题,结果是显示的 div 上没有设置宽度的问题。当我在它工作的元素上设置静态像素宽度时。

    【讨论】:

    • 是的,设置宽度也会将 hasLayout 设置为 true。 satzansatz.de/cssd/onhavinglayout.html
    • 这是一个很好的资源 - 虽然我遇到过关于 hasLayout 等的文章的 sn-ps - 我还没有看到那篇非常详尽的文章。
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2015-02-18
    相关资源
    最近更新 更多