【发布时间】:2014-08-06 10:46:52
【问题描述】:
我知道我可以使用 [dir='ltr'] 或 [dir='rtl'] 来选择具有特定值的 dir 属性的元素。
所以我可以定义例如
[dir='ltr'] .float-end {float:right}
[dir='rtl'] .float-end {float:left}
获得一个.float-end 类,该类分别在具有 ltr 或 rtl 的元素内时向右或向左浮动。
当我有一个 rtl 文档的 ltr 子部分时,问题就开始了。
<div dir="rtl">
<div dir="ltr">
<div class="float-end"></div>
</div>
</div>
发生的情况是两个规则都匹配...在这种情况下我只想匹配“ltr”大小写。
如果我想创建诸如start-20px 和end-20px 之类的类来提供left:20px 和right:20px,则问题会变得更糟,反之亦然,具体取决于上下文。
将导致同时应用left:20px 和right:20px....
我正在寻找有关如何克服这个问题的建议。
有没有办法依赖于任何给定类型元素的属性的最接近值?
这一切都是在 LESS mixins 的上下文中完成的,如果它有助于某种方式的话......
谢谢
【问题讨论】:
-
[dir='ltr'] > .float-end -
hmmm.... 这与继承值有关吗?还是仅适用于具有指定属性的直接子代?我将不得不对此进行测试。
-
所以它不够好:(我需要类似 [dir inherits 'ltr'] > .float-end ....
-
也许我的理解不够好,但
[dir='ltr'] > .float-end:first-child {float:right}是否符合要求?带有完整示例的提琴手将非常有助于完全理解您想要的内容。
标签: css css-selectors