gpt4 book ai didi

javascript - Flip Horizo​​ntal CSS 并使用基于 RTL Direction 的 JavaScript 反转它

转载 作者:行者123 更新时间:2023-11-29 21:13:03 25 4
gpt4 key购买 nike

我打算把整个网页的LTR方向改成RTL方向,最简单的方法就是翻转水平css,然后给页面的每个元素部分添加class,使之成为RTL方向。这是我的 CSS 代码:

.rtl {
-moz-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
-o-transform: scaleX(-1);
transform: scaleX(-1);
-ms-filter: fliph; /*IE*/
filter: fliph; /*IE*/
}

<body class="rtl">

然后我们需要为页面的每个元素添加rtl类,使其成为真正的RTL,例如:

<div class="rtl">Text Here</div>  => Real RTL Direction

现在这是我的问题:

How to reverse whole of body class to RTL direction and flip horizontal using javascript ?

如果有任何解决方案可以使用 JavaScript 将正文方向更改为 RTL,则无需向网站的每个部分添加水平翻转类。目前改变方向的唯一方法是我们为每个文本部分和图像部分元素添加类 fiv、span、p 等

我尝试了 HTML direction RTL 和 body RTL,但没有用,我相信如果我们能够强制 body direction 到 RTL 并水平翻转那么它就可以解决。

我非常感谢这个问题中的任何评论和想法。

最佳答案

当我强制 body 显示 dir=rtldir=ltr 时它起作用。对于 flip,我使用您的 css 并将 * 作为选择器来选择所有元素。检查一下:

var b = document.getElementsByTagName("body")[0];
b.setAttribute("dir", "rtl");
/* b.setAttribute("dir", "ltr"); */
console.log(b);
<h1> Hello world </h1>
<div> Text Here</div>
<p>lorem ipsum lorem ipsum lorem ipsum</p>

更多相关信息:Css Tricks on text direction

如果你想翻转所有元素可以添加这个:

* {
-moz-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
-o-transform: scaleX(-1);
transform: scaleX(-1);
-ms-filter: fliph; /*IE*/
filter: fliph; /*IE*/
}

但是如果你的意思是:从 Hello world 你希望它显示为 dlrow olleH你可以试试这个:

var ns = document.body.childNodes;
ns.forEach(function(elm) {
if (elm.innerText && elm.nodeName !== "SCRIPT") {
//set array of char then re-arrange char
var arr = elm.innerText.split(''),
temp = [];
for (var i = 0, l = x = arr.length - 1; i <= l; i++, x--) {
temp[i] = arr[x];
}
elm.innerText = temp.join('')
}
})
<h1> Hello world </h1>
<div>Text Here</div>
<p>lorem ipsum<span> span </span>lorem ipsum lorem ipsum</p>

关于javascript - Flip Horizo​​ntal CSS 并使用基于 RTL Direction 的 JavaScript 反转它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40779933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com