如果孩子有特定的班级,Sass 选择父母

Posted

技术标签:

【中文标题】如果孩子有特定的班级,Sass 选择父母【英文标题】:Sass select parent if child has a specific class 【发布时间】:2018-08-11 13:46:19 【问题描述】:

如果子元素包含某个类,是否有任何方法可以在 sass 中选择父元素?

基本上我正在使用 tooltipster 插件并遇到此问题

HTML

<div class="tooltipster-content">
  <span id="note-options">
    <ul>
      <li>Create new note</li>
      <li>Add new edit note</li>
    </ul>
  </span>
</div>

CSS

#note-options 
   //From here, select the .tooltipster-content parent
     ul 
       li 

       
     

我需要能够根据 span 标签的 id 选择 .tooltipster-content 类。

Tooltipster 将始终使用相同的 html 结构生成,但我不想更改所有工具提示的 tooltipster 包装器,我想按每个工具提示进行。

由于 tooltipster 不会将您指定的 id 添加到父包装器以进行基本的 CSS 编辑,我能想到的唯一方法是尝试使用 span ID 来选择最接近的 .tooltipster-content 类。

这可以实现吗?

注意 - 我不想使用 javascript/jquery 来解决这个问题,我想尝试在 CSS/SASS 中实现它。

【问题讨论】:

我不确定我是否理解您的问题。如果您想拥有可以添加的选择器(如果使用 sass)#note-options .tooltipster-content 如果您希望注释选项使用与 tooltipster 相同的规则集,则可以使用内置 mixin @extend (.你的班级名称) 我知道这在 CSS 中是无法实现的,这就是为什么我说我正在尝试使用 SASS 来实现它,其中有一个父选择器 (&)。感谢您的意见,但请正确阅读问题。 浏览器不理解 SASS,它们只理解 CSS,所以 没有任何事情 不能在 CSS 中完成永远 可以使用任何预处理器(音节 pre 清楚地表明)。同样在 SASS 中,&amp; 并不是真正的父选择器,它只是意味着用目前创建的选择器替换它 【参考方案1】:

不。在 CSS 或任何预处理器中,您无法在 dom 中向上移动以选择父级。 JS是唯一的办法。

如果你有 jQuery,你可以简单地使用.parent()

【讨论】:

以上是关于如果孩子有特定的班级,Sass 选择父母的主要内容,如果未能解决你的问题,请参考以下文章

SASS - 它的父母和另一个父母的孩子的嵌套孩子

为啥我不能在某些特定情况下将父母投射到孩子身上

TSQL:根据孩子的条件选择父母

如果所有孩子都符合条件,则选择父母

jquery选择器需要选择父母的所有某些孩子

一对多查询为每个父母选择所有父母和单个***孩子