【问题标题】:Safari ignores css dir="ltr" after switcing css filesSafari 切换 css 文件后忽略 css dir="ltr"
【发布时间】:2015-04-23 16:07:35
【问题描述】:

我为我的网站添加了英语,因此它将支持 2 种语言。 在第一种语言中,我使用 css 文件,其中所有内容都是 RTL。 现在,当我切换到英语时,我删除了 RTL css 文件并添加了一个 dir 是 LTR 的 css 文件。 在 Chrome、IR 和 Firefox 上运行良好。 但是在 Safari 上(我只尝试了移动 safari),它部分忽略了 LTR。 您可以在此处查看:http://parkplanner.co.il/ 并使用菜单上的“英语”按钮更改语言。

这是 LTR css 文件 - http://parkplanner.co.il/css/ltr-adj.css

谢谢!

【问题讨论】:

  • 桌面 safari 也存在问题.. 刚刚检查了您的网站

标签: javascript jquery html css safari


【解决方案1】:

使用direction:ltr; 而不是dir 属性

【讨论】:

    【解决方案2】:

    这看起来是众所周知的问题。 阅读主题。 Force DOM redraw/refresh on Chrome/Mac

    // in jquery $('#parentOfElementToBeRedrawn').hide().show(0);
    
    // in plain js document.getElementById('parentOfElementToBeRedrawn').style.display = 'none'; document.getElementById('parentOfElementToBeRedrawn').style.display = 'block';
    

    如果这个简单的重绘不起作用,你可以试试这个。它在保证重绘的元素中插入一个空文本节点。

    var forceRedraw = function(element){
    
        if (!element) { return; }
    
        var n = document.createTextNode(' ');
        var disp = element.style.display;  // don't worry about previous display style
    
        element.appendChild(n);
        element.style.display = 'none';
    
        setTimeout(function(){
            element.style.display = disp;
            n.parentNode.removeChild(n);
        },20); // you can play with this timeout to make it as short as possible
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-11
      • 2020-03-09
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 2011-10-28
      相关资源
      最近更新 更多