html - RTL - 为什么右边界没有改变

标签 html css

我在我的 HTML 中尝试从右到左的方向,因为它对阿拉伯语、希伯来语等语言很有用

我面临的问题是 border-right 并没有改变它在转移到 RTL 时保留在同一个地方。根据我的理解,当我切换到 RTL 模式时,我认为 border-right 将更改为 border-left。

RTL 属性到底有什么作用?。它只是转移内容。 如果是这样,我可以通过在 RTL 的情况下将 border-right 更改为 left 来解决这个问题。但在此之前,我只想了解 RTL 的真正作用。请点亮它

var rtl = document.getElementById('RTL');
var content = document.getElementById('content');
var currentState;
rtl.onclick = implementRTL;

function implementRTL() {
  currentState = content.getAttribute('dir');
  if (currentState == 'ltr') {
    content.setAttribute('dir', 'rtl');
  } else {
    content.setAttribute('dir', 'ltr');
  }
}
div {
  border: 10px solid #000;
  border-right: 10px solid red
}
<div id="content" dir="ltr">
  Hi Here is the content
</div>
<button id="RTL">
  RTL SWITCH
</button>

检查下面我试过的代码

最佳答案

border-inline-end

此属性在文本为 LTR 时设置右边框,在 RTL 情况下设置左边框。同样,另一边的边框有border-inline-startborder-block-startborder-block-end用于顶部和底部边框。它们也适用于垂直文本。

var rtl = document.getElementById('RTL');
var content = document.getElementById('content');
var currentState;
rtl.onclick = implementRTL;

function implementRTL() {
  currentState = content.getAttribute('dir');
  if (currentState == 'ltr') {
    content.setAttribute('dir', 'rtl');
  } else {
    content.setAttribute('dir', 'ltr');
  }
}
div {
  border: 10px solid #000;
  /* border-right: 10px solid red; */ /* old */
  border-inline-end: 10px solid red; /* new */
}
<div id="content" dir="ltr">
  Hi Here is the content
</div>
<button id="RTL">
  RTL SWITCH
</button>

关于html - RTL - 为什么右边界没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43582819/

相关文章:

css - Div 在窗口调整大小时重叠

javascript - 我想在 html 输入字段中只允许数字和正斜杠

html - 如何不将文本环绕在 DIV 周围?

JavaScript 计数错误

php - 将 Wordpress 帖子显示为带标题的图库

html - 为什么 div 区域仍然比图像 css 更大?

javascript - 将变量传递给表单 Action JavaScript 和 HTML

javascript - 如何使用 javascript 创建重复的函数和图像标签?

html - 下一个相同父项的 CSS 选择器

html css叠加多张图片