angular - IONIC 4 中的 LTR 和 RTL
问题描述
我在 ionic 4 中使用 ngx-translate 来添加不同的语言。在我的项目中,我有阿拉伯语。ngx-translate 功能运行良好。它正在动态更改html 标签的目录。
问题:如果 html 标签在每个组件中都有dir="rtl" ,我想写一些样式。但是 Angular 有默认封装,所以我无法在我的 component.scss 文件中编写如下样式。
html[dir="rtl"]{
h3{
color: red;
}
}
我知道 Angular 提供了封装更改属性,例如,
encapsulation: ViewEncapsulation.None
但我不想利用封装的优势。
谢谢您的帮助。
解决方案
有时根据组件视图之外的某些条件应用样式很有用。例如,可以将 CSS 主题类应用于文档<body>
元素,并且您希望基于此更改组件的外观。
使用 :host-context() 伪类选择器,它的工作方式类似于 :host() 的函数形式。:host-context() 选择器在组件宿主元素的任何祖先中查找 CSS 类,直到文档根。:host-context() 选择器在与另一个选择器结合使用时很有用。
:host-context(html[dir="rtl"]) ion-card-subtitle {
background-color: #eef;
}
推荐阅读
- spring-boot - Springboot 2.2.1RELEASE - 需要 'org.springframework.jdbc.core.jdbctemplate' 类型的 bean
- c# - 如何在 .NetCore 2.2 中从 StartUp 注入 2 EventHubClient
- apache-kafka - 是否有任何读取 Kafka 主题的 Spring Schedule 示例?
- javascript - 使用 window.print() 强制重复的 printElement 转到页面底部;
- python - Python switch case,多值
- php - 我怎样才能让我的迷你推车恢复正常。(WooCommerce)
- go - Go 的 monkey.PatchInstanceMethod 返回“权限被拒绝”错误?
- excel - Userform Combobox 根据其值在媒体播放器中播放歌曲
- excel - 在excel中将时间戳转换为日期时间
- python - 无法从 IDE 外部使用在 Pycharm 中创建的虚拟环境