CSS最接近父规则

CSS最接近父规则,css,sass,Css,Sass,据我所知,CSS的工作方式是,新规则总是优先于旧规则。 意思是,如果我有: a { color: black } a { color: white } a标签将为白色 我希望在具有子选择器时,此选项不生效,例如: [dir="ltr"] [text-end] { text-align: right; } [dir="rtl"] [text-end] { text-align: left; } 如果具有dir的最近父级为ltr,ltr将采用 但是,对于此代码,情况并非如此: &

据我所知,CSS的工作方式是,新规则总是优先于旧规则。 意思是,如果我有:

a { color: black }
a { color: white }
a
标签将为白色

我希望在具有子选择器时,此选项不生效,例如:

[dir="ltr"] [text-end] {
    text-align: right;
}
[dir="rtl"] [text-end] {
    text-align: left;
}
如果具有
dir
的最近父级为
ltr
ltr
将采用

但是,对于此代码,情况并非如此:

<div dir="rtl">
    <div dir="ltr">
        <div text-end style="width: 100%">
            a
        </div>
    </div>
</div>

A.
此处的文本将位于
左侧
,尽管它应该是
ltr
,并且位于
右侧


我能让它接受最接近父级的样式吗?

您可以给
文本对齐:继承
to
div[text end]
从其父项继承
text align
值。以下是修改后的css:

div[dir="ltr"] {
  text-align: right;
}

div[dir="rtl"] {
  text-align: left;
}

div[text-end] {
  text-align: inherit;
}
div[dir=“ltr”]{
文本对齐:右对齐;
}
div[dir=“rtl”]{
文本对齐:左对齐;
}
div[文本结束]{
文本对齐:继承;
}

A.

嗯,对于
ltr
我说过我希望
text end
right
,但事实并非如此。添加了codepen您是否考虑过使用
text align:end
?“如果具有dir的最接近的父项是ltr,那么ltr将采用。”您能详细说明一下吗。@NiettheDarkAbsol虽然这很有帮助,但这并不是我确切要求的。(在这种情况下,你是对的)。我问,我怎样才能让最亲密的父母影响孩子这就是CSS中“C”的意思。。。