css - 第 N 个类型未检索到预期的元素

标签 css sass

<分区>

我在使用 nth-of-type 时遇到了问题。我有一个代码笔来演示这个问题。

https://codepen.io/nicole-staline/pen/bJMMjd

我假设因为 .input_range.marker 是它的第一个类型,所以下面应该起作用:

.marker {
      &:nth-of-type(1) {
      background:red;
}

但它没有,我必须使用 nth-of-type(4) 来定位它。这对我来说没有任何意义。

我可以合理地假设它正在计算其他范围输入,但它不应该,除非我误解了 nth-of-type 的工作原理。

讨厌重新发布,但最后一个问题作为重复问题立即被关闭,并将我链接到一篇没有解决我的问题的文章。

最佳答案

这是预期的行为,nth-of-type 考虑它被调用的父级下的所有 sibling ,这意味着根据您的代码,所有 inputinput_range 下被考虑。

如果你想要一个 CSS 解决方案,你可能不得不求助于制作一个包装器 div 并将你的类范围限定为:

<div class="input_range">
    <input class="range" type="text" value="1"/>
    <input class="range" type="text" value="2"/>
    <input class="range" type="text" value="3"/>

  <div class="subset">
    <input class="marker" type="text" value="4"/>
    <input class="marker" type="text" value="5"/>
  </div>

</div>

通过以下方式实现相同目标:

.input_range {
  .range {

  }
  .marker {

  }

  .subset .marker{
    &:nth-of-type(1) {
      background: black;
    }
  }
}

否则你总是可以求助于 javascript:

document.getElementsByClassName(‘marker’)[1].style.background = ‘black’;

关于css - 第 N 个类型未检索到预期的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55764986/

上一篇:html - 如何使 <hr> 标签响应?

下一篇:html - style.css 不适用于我网站的虚拟主机预览,但它适用于本地 "offline"HTML 文件

相关文章:

css - Gulp sass compile 只改变了改变文件的文件夹

coffeescript - 如何正确使用coffeescript/sass(编译语言)和Google Polymer?

html - 仅将 CSS 水平下拉菜单中的顶部索引菜单项居中

Jquery 滚动 1 div 其他 div 向后滚动

css - 具有骨架响应式布局的固定侧边栏

html - CSS - 在下拉列表周围填充

css - 悬停时如何更改图标列表的对齐方式

javascript - 多个元素的鼠标悬停和鼠标移开

android - ionic 标签恼人的激活颜色

css - 我怎样才能抓取一堆 scss 文件并为所有应用程序制作一个 css 文件