表中 RTL 和 LTR 方向变化时的 Padding-Right 或 Padding-Left 问题

发布于 2024-12-06 17:12:28 字数 269 浏览 2 评论 0原文

我正在用两种语言(RTL和LTR)开发一个项目,所以当我设计我的表格时,一些TD必须有右或左填充,当我将页面方向更改为其他时,左填充意味着右,反之亦然,这是我的问题是因为我应该为 RTl 设计一次表,为 LTR 设计一次表。

我的问题:

LTR                  RTL

|您好| ----> |关闭|

正确的设计:

|您好| ----> | 斯拉姆 |

谢谢

I'm developing a project in two languages (RTL and LTR) so when I design my tables some TDs must have right or left padding and I when I changes page direction to other, left padding means right and vies-versa and it is my problem because I shoud design my table once for RTl and once for LTR.

My problem:

LTR                  RTL

| Hello| ----> | سلام|

that correct design:

| Hello| ----> |سلام |

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空心空情空意 2024-12-13 17:12:28

如果我正确理解这个问题,我认为你有两个选择。

一。相应地为特定方向文本和样式创建类。所以

和 css

td.rtl{
    direction:rtl;
    padding-left:20px;  //OR WHATEVER
}

然后对 ltr

Two. 设置 相反的一种方式填充。然后使用 jQuery 检测方向并进行相应调整。

所以像

$('td').each(function(){
    if($(this).css('direction') == 'rtl'){
        $(this).css({'padding-left':'//whatver','padding-right':'0'});
    }
}); 

If I understand the question correctly, I think you have two options.

One. create classes for specific directional text and style accordingly. So

<td class="rtl"></td>

and the css

td.rtl{
    direction:rtl;
    padding-left:20px;  //OR WHATEVER
}

And then the opposite for ltr

Two. set the padding one way. Then use jQuery to detect the direction and adjust accordingly.

So something like

$('td').each(function(){
    if($(this).css('direction') == 'rtl'){
        $(this).css({'padding-left':'//whatver','padding-right':'0'});
    }
}); 
活雷疯 2024-12-13 17:12:28

使用纯CSS解决方案,

而不是使用leftright,使用*-inline-start*-内联结束

.ltr { /*default not required*/ }
.rtl { direction: rtl; }

.myClass {
  padding-inline-end: 20px;
  border: 1px solid #222
}
<span class="myClass ltr"> Hello </span>
<hr/>
<span class="myClass rtl"> سلام </span>

https://developer.mozilla.org/en- US/docs/Web/CSS/margin-inline-start

Solution with Pure CSS

instead of using left or right use *-inline-start and *-inline-end

.ltr { /*default not required*/ }
.rtl { direction: rtl; }

.myClass {
  padding-inline-end: 20px;
  border: 1px solid #222
}
<span class="myClass ltr"> Hello </span>
<hr/>
<span class="myClass rtl"> سلام </span>

https://developer.mozilla.org/en-US/docs/Web/CSS/margin-inline-start

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文