将所有页面的方向设置为从右到左(RTL)

10

我有一个很长的HTML页面。
我想将所有文本/表格的方向更改为从右到左。
如何可以在不逐个更改元素方向为rtl的情况下,将整个页面方向更改为rtl?
谢谢。


我该如何使用JavaScript实现这个功能?我可以给body元素添加属性吗? - CSharpBeginner
4
是的。 document.body.setAttribute('dir','rtl') - evolutionxbox
5个回答

15

使用CSS:

* {
    direction: rtl;
}

使用JavaScript:

var children = document.children;
var i;
for (i = 0; i < children.length; i++) {
   children[i].style.direction = "rtl";
}
document.body.style.direction = "rtl";

或者(来自evolutionxbox的评论)

document.body.setAttribute('dir', 'rtl')

使用jQuery(即使您没有提出相关问题):

$("html").children().css("direction","rtl");

内联代码:

<body dir="rtl">

或者

<html dir="rtl">

3
或者 document.body.setAttribute('dir', 'rtl')。 (说明:这是一段JavaScript代码,用于将HTML页面的文本方向设置为从右到左,通常用于阿拉伯语、希伯来语等从右向左书写的语言) - evolutionxbox
谢谢,document.children 可能未定义? - CSharpBeginner
@CSharpBeginner 不是。document.children 返回至少一个项目(body - 因为它是由Web浏览器事件自动添加的,即使在您的代码中不存在)。 - NETCreator Hosting - WebDesign

5

CSS中的direction属性设置块级元素内内容流的方向。该属性适用于文本、内联和内联块元素。它还设置文本的默认对齐方式以及表格行中单元格流动的方向。您可以使用该属性。

body {
  direction: rtl;  /* Right to Left */
}

或者,也可以使用HTML属性来设置方向。
<body dir="rtl">

建议使用HTML属性,即使CSS失败或由于任何原因不影响页面也能正常工作。


4
你可以使用jQuery。
$('body').children().css('direciton','rtl');

或者使用纯JavaScript:

document.getElementsByTagName('Body')[0].style.direction = "rtl"

我可能在 .html 页面中没有 <body> 标签吗? - CSharpBeginner
我不这么认为。无论如何,您可以使用任何元素(例如Div容器)并使用相同的代码.... - Gil Lupu
如果提问者没有标记问题为jQuery,请不要给出jQuery的答案。 - evolutionxbox
@CSharpBeginner - 如果HTML中没有body标签,浏览器会自动添加它。 - evolutionxbox
你可以使用纯JavaScript执行相同的操作:document.getElementsByTagName('Body')[0].style.direction = "rtl" - Gil Lupu

1

JavaScript

 document.body.style.direction= "rtl";

HTML
<body dir="rtl">

2
或者 document.body.setAttribute('dir', 'rtl') - evolutionxbox
是的,我们可以做到。 - rejo

0

使用CSS

html * {
  direction: rtl;
}

使用 jQuery

$('html').children().css('direction','rtl');

如果提问者没有标记问题为jQuery,请不要给出jQuery答案。 - evolutionxbox
@evolutionxbox 但是我先添加了 CSS 解决方案... jQuery 是额外的解决方案。 - webdevanuj
可以,但请提供一个非jQuery的JavaScript解决方案。因为这是OP所要求的。"我该如何使用JavaScript实现?我可以将属性添加到body元素吗?" - evolutionxbox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接