我可以使用纯CSS根据元素的祖先位置属性设置元素样式吗?

我可以使用纯CSS根据元素的祖先位置属性设置元素样式吗?,css,css-position,Css,Css Position,是否可以根据其祖先的CSS属性值选择元素?假设我有以下HTML文本: <div><!-- ancestor --> <!-- I may have N level descendants which are as well ancestors for the upcoming div --> <div class="myTarget"> The div I want to target </div> </div

是否可以根据其祖先的CSS属性值选择元素?假设我有以下HTML文本:

<div><!-- ancestor -->
  <!-- I may have N level descendants which are as well ancestors for the upcoming div -->
  <div class="myTarget">
    The div I want to target
  </div>
</div>

我的猜测是,我不能,但由于可以根据元素的属性选择元素,我认为也许这也是一种根据其CSS属性进行选择的方法。

我的解决方案是一个类:

<div class="ancestor"> <!-- ancestor -->
  <div class="myTarget">
    The div I want to target
  </div>
</div>

我认为如果您的CSS是内联的,而不是
div[style=“display:table cell”]
,这是可能的。或者使用JS检查父属性是的,您可以基于祖先属性(称为css属性样式)为元素设置样式。如果您可以向具有display:table-cell的元素添加一个类,那么可以很容易地阅读相关内容。您是否不控制祖先标记和/或样式?这意味着您不知道元素将插入到哪里?否则,如果您知道一个元素被呈现为一个表单元,那么您就知道了。如果它在文档生存期内发生更改,您可以附加一个事件处理程序来检测更改,并通过切换
myTarget
的规则对其进行操作。老实说,我相信我们正在处理的是一个案例。是的@amn这就是问题所在:我无法接触祖先或他们的风格。这是一个可重用的组件,可能出现在任何地方。我想避免使用JS解决方案,如果可能的话,尝试使用纯CSS解决。不幸的是,这不是一个选项,因为最初我无法控制我的祖先。当然,我可以通过JS获得这种访问权限,但这正是我试图避免的,也是我问自己是否有机会通过纯CSS实现我的目标的原因。
<div class="ancestor"> <!-- ancestor -->
  <div class="myTarget">
    The div I want to target
  </div>
</div>
.myTarget {
  position: relative;
}

div.ancestor > .myTarget {
  position: absolute!important;
}