基于其他规则应用 CSS 规则 - RTL 特定样式

2024-02-18

推介会

我正在尝试建立一个可用于多种文化、具有不同阅读方向的网站。

为此,我只需添加dir="rtl"我的根 HTML 元素上的属性。

我的问题是,我有一些特定于一个方向或另一个方向的 CSS 规则(大多数情况下是边距或填充)。

尝试使用属性选择器失败

我以为我会简单地使用属性选择器 https://www.w3schools.com/css/css_attribute_selectors.asp但是dir属性仅在根元素上设置,因此这是行不通的:

selector {
  &[dir="ltr"] {
    // LTR specific
  }

  &[dir="rtl"] {
    // RTL specific
  }
}

例如,关于这个demo https://jsfiddle.net/y381ajap/2/,如果应用程序在,标题右侧应有 5px 的边距rtl或在左侧(如果是标准的)ltr.

其他想法

我注意到direction正确地设置为rtl,有没有办法在一个CSS or Sass选择器?

编辑和精度

看来我忘记了一个重要的点。我正在使用 Vue.js 构建网站,dir属性在主组件中绑定(App)和 RTL/LTR 特定 CSS 规则可以位于同一组件或其他独立组件中。


按照你的CSS代码,你可以用SASS来做到这一点at-root指示DEMO https://codepen.io/anon/pen/JMqppN。所以这:

#app {
  width: 300px;
  height: 100px;
  border: 1px solid red;

  h1 {
    @at-root {
      [dir="rtl"]#{&} {color: green}
    }

    @at-root {
      [dir="ltr"]#{&} {color: red}
    }
  }
}

它将编译为这个 css。

#app {
  width: 300px;
  height: 100px;
  border: 1px solid red;
}
[dir="rtl"]#app h1 {
  color: green;
}
[dir="ltr"]#app h1 {
  color: red;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于其他规则应用 CSS 规则 - RTL 特定样式 的相关文章

  • 严格/过渡 DOCTYPE 之间的浏览器渲染差异

    前段时间我遇到了一个 问题 但我从未深入了解过 希望有人能够照亮它 当我将 DOCTYPE 从严格更改为过渡时 是什么导致某些浏览器 Chrome Opera 和 Safari 以不同方式呈现页面 我知道造成这种情况的一般原因是触发了怪异模
  • grid-auto-columns 在 Firefox 中不能完全工作

    我不明白为什么 DIV 3 的大小与 DIV 1 DIV 2 的大小不同 https codepen io anon pen vaVqPW https codepen io anon pen vaVqPW grid display grid
  • android 确定设备是否采用从右到左的语言/布局

    有没有办法确定设备是否使用从右到左的语言 例如阿拉伯语 而不是从左到右的语言 英语 与较旧的 API 级别 低至 10 兼容的东西是必要的 SOLUTION 我最终在接受的答案中使用了 xml 方法 接下来 我还添加了此处指示的代码 以应对
  • 样式标签中的源映射是否有效?

    我在标签和源映射中遇到 CSS 问题 为了缩短项目的加载时间 我改变了将 CSS 放入 HTML 的方式 将其改为 h1 Source maps working wonderfully h1 进入这个
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • 如何仅在 css/html 中强制在单词之间换行?

    我只有一段普通的文本 p 标签内的 p div 标签 但只有 Firefox 可以正确显示 Firefox 打破了单词之间的界限 所有其他浏览器都会在单词中间断行 这使得阅读变得困难 这是我的意思的一个例子 火狐浏览器 工作中 This w
  • 引导行之间的垂直间距

    所以我正在研究布局 为了 响应能力 我决定使用 Bootstrap 现在我猜网格系统有问题 我想要的结果如下 1 4 2
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此
  • 如何从 bootstrap-markdown.js 调用 .getContent 和 .parseContent

    我是使用 Bootstrap 插件的新手 刚刚通过代码学院 http www codecademy com en skills make an interactive website 我真的很想用这个很棒的引导 Markdown 插件 ht
  • 如何向 CSS 形状添加偏移轮廓?

    我在创建带有斜角边缘的块时遇到了一些问题 此外我需要一个斜角的边框并稍微偏离主块 问题是这个块可以根据屏幕响应 不知道具体的方法 希望大家帮忙 这就是我现在所做的 box display flex padding 20px height 2
  • 使用绝对定位时文本被破坏

    我有一个小挑战 我在 Stack Overflow 上没有找到任何解决方案 这就是我得到的 这就是我想要的 为了产生这个标题效果 我使用绝对位置 我什至不知道我的标题的宽度和高度 因此 使用此解决方案时 大文本会中断 My HTML div
  • 如何处理 Django 中的错误

    我想让我的 django 应用程序尽可能对用户友好 并且我想处理适当的错误并让它推出类似于 javascript 中的警报的错误消息 我想在没有上传文件时执行此操作 因此 当按下上传按钮并且尚未上传任何内容时 将会发出一条警报消息 我的看法
  • CSS 无法从带有 php“includes”的相对路径工作

    文件夹结构 index php includes header html css style css 我的主项目文件夹中有 2 个子文件夹 一个是名为 includes 的文件夹 另一个名为 css 我有我的 index php主文件夹中的
  • CSS 显示无不工作

    media screen and min width 900px and max width 1215px menu display none 这不起作用 div 仍然可见 但是 如果我将 div 更改为 div class menu 代替
  • 如何将 Vue.js 作用域样式应用于通过视图路由器加载的组件?

    如何将 Vue js 作用域样式应用于通过以下方式加载的组件
  • 如何删除标题中的粗体?

    我有一个标题 h1 THIS IS A HEADLINE h1 如何使短语 THIS IS 不加粗 其余部分不做任何更改 我在文本装饰中找不到任何相关标签 标题看起来很粗体 因为它大尺寸 如果您已应用粗体或想要更改行为 您可以执行以下操作
  • 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

    我有几个使用相同母版页的内容页 它们并不都需要包含在相同的 javascript 和 css 文件中 tag 是否可以更改内容来自内容页面的标签 确实如此 但我建议采取一些不同的做法 我在关闭正文标签的正上方放置了一个内容占位符 然后我填充
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • Bootstrap 导航栏与 Google 位置重叠自动完成下拉菜单

    我有一个导航栏 我试图在其中添加一个地点搜索框 除了谷歌位置提示框的一小部分被导航栏重叠 如下图所示 之外 一切几乎都有效 我尝试过改变z index输入框的值改为10或2000或90000但似乎没有效果 我还缺少其他需要做的事情吗 这是

随机推荐

  • JMeter 框架

    我最近开始学习 JMeter 来对我们的应用程序进行性能测试 我有一个测试计划 jmx 并使用 Jenkins Ant 定期运行它 到目前为止一切都很好 我的问题是 我们有一个关键字驱动的框架 TestNG 等用于功能测试工具 QTP Se
  • 从 PDO 准备好的语句中检索(或模拟)完整查询

    我偶然发现这个问题 https stackoverflow com questions 210564 pdo prepared statements从两年前开始 在准备好的语句上调用 PDOStatement execute 时 有没有办法
  • ModuleNotFoundError:没有名为“telethon”的模块

    我已经使用以下代码安装了 telethon sudo pip3 install telethon 我尝试重新安装它并收到以下消息 Requirement already satisfied pyasn1 gt 0 1 3 in usr lo
  • vb6中删除字符串左右两侧的某些字符(TrimChar)

    我想删除字符串中一些错误使用的某些字符 我想只删除此文本之外的点 正如你所看到的 我不能为此使用替换 我必须找到一种方法来仅删除字符串左侧和右侧的字符 而这些点只是我要删除的字符的示例 我有一系列不需要的字符 所以在处理之后字符串应该看起来
  • OPENGL混合功能——以分层的方式缓慢替换颜色

    我想做的是在亮红色 1 0 0 1 上添加带有 alpha 0 1 0 0 0 2 的深红色 对于第一层 它工作正常 结果是 0 9 0 0 1 然而 当红色值达到 0 5 时 它不能低于该值 第一层用以下等式进行演示 并且工作正常 glB
  • Javascript正则表达式多重匹配[重复]

    这个问题在这里已经有答案了 我正在尝试使用 javascript 在具有查询字符串参数的 url window location href 上执行正则表达式 但无法弄清楚如何执行此操作 就我而言 有一个查询字符串参数可以重复自身 例如 qu
  • ZF2 fileprg 与集合中的文件

    我无法得到fileprg用于处理集合中的文件的插件 我正在尝试使用上传多个文件FormCollections 但在 form gt getData 没有与我的收藏或文件相关的密钥 我用简单的方法测试了表单和 fileprgfile inpu
  • 在 HTML 省略号下划线

    我在用text overflow ellipsis剪切锚点内跨度内的文本 当我悬停时 省略号字符没有下划线 这会导致一个小间隙 有没有办法来解决这个问题 是的 你可以这样做 设置text decoration none而不是使用border
  • Ruby代码美化,将长指令拆分为多行

    我们如何编写以下语句以提高可读性 Promotion joins category where lft gt and rgt lt c lft c rgt joins shops where promotions per shops gt
  • 如何检查Dotnet事务是否回滚?

    如何检查 dotnet 交易是否已关闭 你的标题问的是一件事 你的问题问的是另一件事 所以 我同意你的标题 如果想知道事务是否回滚或者设置为仅回滚 可以查看 transaction WasRolledBack true if transac
  • SSRS:仅为当前登录的用户提取报告

    我需要能够根据登录人员提取报告 例如 在一组销售人员中 如果鲍勃进入此报告并单击 销售人员 下拉列表 我需要他只能将鲍勃视为可用的销售人员 而不是其他任何人 我通过使用解决了这个问题 User UserIDSSRS 中的函数并且运行良好 我
  • 如何在 Acrobat Javascript 中编写文本文件

    我正在使用 acrobat XI 我尝试过输出这样的文本文件 var cMyC abc var doc this createDataObject cName test txt cValue cMyC this exportDataObje
  • 在 Ruby 中初始化类对象变量

    例如我创建了一个类 class Result min 0 max 0 def initialize min max max min min max max max end end result Result new 1 10 result
  • 配置 LDAP 时出现 Berkeley DB 不匹配错误

    我正在配置 OPENLDAP 2 4 35 在 Redhat Linux 上 我已经安装了 Berkley DB 4 8 30 作为先决条件 我还检查了 OPENLDAP 的 README 文件中的版本兼容性 其中显示 SLAPD BDB
  • 在postgresql中将两个select语句添加到一个insert into语句中

    我通过以下方式制作了一个临时表 create temporary table return table p1 BIGINT p2 VARCHAR 45 p3 VARCHAR 45 p4 VARCHAR 45 p5 VARCHAR 45 p6
  • 确定插入符何时到达输入框的末尾

    我已经发现这个问题 https stackoverflow com questions 263743 how to get cursor position in textarea它提供了一种计算文本或输入框中插入符号的确切位置的解决方案 就
  • 如何在 Google colab 中循环播放音频

    我试图在 google colab 中循环运行音频 但它没有给 mi 任何输出 from gtts import gTTS from IPython display import Audio for voice in Aniket sach
  • 在 VR 中单击 inputField 时打开键盘(Oculus Quest 2 和 XRIT)

    我目前正在使用 Unity 为 oculus quest 2 开发一个小型应用程序 我创建了一个画布 在其中添加了一个按钮和一个输入字段 通过使用 XR 交互工具包 我可以使用两个控制器单击按钮或输入字段 但是 仍然无法在输入字段中输入任何
  • 如何在 Android 中使用双三次插值在画布上绘制和缩放位图?

    我想在画布上绘制比实际尺寸更大的位图 我可以使用 canvas drawBitmap bitmap null destRect null 但是 如果源图像比目标矩形小得多 那么质量就会很差 因为结果会像素化 如何使用双线性或双三次重采样绘制
  • 基于其他规则应用 CSS 规则 - RTL 特定样式

    推介会 我正在尝试建立一个可用于多种文化 具有不同阅读方向的网站 为此 我只需添加dir rtl 我的根 HTML 元素上的属性 我的问题是 我有一些特定于一个方向或另一个方向的 CSS 规则 大多数情况下是边距或填充 尝试使用属性选择器失