Safari 在切换 css 个文件后忽略 css dir="ltr"

Safari ignores css dir="ltr" after switcing css files

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

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

谢谢!

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

这看起来像是一个众所周知的问题。 阅读线程。 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
}