CSS/SCSS 选择元素没有继承类

标签 css sass

我有以下 html:

<ul class="pagination ">
    <li class="">
        <a href="/en/products/page5">
            <span><i class="fa fa-chevron-left"></i></span>
        </a>
    </li>
    <li class="">
        <a href="/en/products/page1">1</a>
    </li>
    <li class="">
        <a href="/en/products/page2">2</a>
    </li>
    <li class="">
        <a href="/en/products/page3">3</a>
    </li>
    <li class="">
        <a href="/en/products/page4">4</a>
    </li>
    <li class="">
        <a href="/en/products/page5">5</a>
    </li>
    <li class="active">
        <a href="/en/products/page6">6</a>
    </li>
    <li class="hide">
        <a href="/en/products/page7">
            <span><i class="fa fa-chevron-right"></i></span>
        </a>
    </li>
</ul>

在这个例子中,我在最后一页,所以“下一页”按钮自动隐藏。 我希望最后一个可见元素(第 6 页)具有圆 Angular 边框。 如何在不更改 HTML 的情况下使用 css/scss 选择“第 6 页”? 我想到了这样的事情:

.pagination > li:not( + li.hide) > a,
.pagination > li:not( + li.hide) > span {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

但这行不通。 明确一点:我想在 .hide 之前选择元素而不依赖于 .active 类。

最佳答案

您可以使用 :nth-last-child() 选择器从元素列表的末尾开始并选择您拥有的倒数第二个元素。这是 how nth-last-child works .

.pagination > li {
  border: 2px solid #000;
  display: inline-block;
  padding: 5px 10px;
  margin: 5px;
}

.pagination > li.active:nth-last-child(2) {
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
}

.pagination > li.hide {
  display: none;
}
<ul class="pagination ">
  <li class="">
      <a href="/en/products/page5">
          <span><i class="fa fa-chevron-left"></i></span>
      </a>
  </li>
  <li class="">
      <a href="/en/products/page1">1</a>
  </li>
  <li class="">
      <a href="/en/products/page2">2</a>
  </li>
  <li class="">
      <a href="/en/products/page3">3</a>
  </li>
  <li class="">
      <a href="/en/products/page4">4</a>
  </li>
  <li class="">
      <a href="/en/products/page5">5</a>
  </li>
  <li class="active">
      <a href="/en/products/page6">6</a>
  </li>
  <li class="hide">
      <a href="/en/products/page7">
          <span><i class="fa fa-chevron-right"></i></span>
      </a>
  </li>
</ul>

关于CSS/SCSS 选择元素没有继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42673371/

相关文章:

javascript - 在任意图像上保持垂直节奏

LARAVEL:如何将app.sass编译成app.css

javascript - 如何在 React 中使用 javascript 模块对象(HTML + JS 嵌入)

html - 有什么方法可以增加文本输入中的字体大小,而无需使用 css 在输入的外部添加空间?

html - 为什么在后代元素上设置填充会减小内容框的宽度?

css - Angular 组件的 Sass 结构

html - CSS 布局 - 拥有包装器的最佳方式

html - 为什么我的内容没有垂直对齐? ( flex ,CSS3)

html - 视网膜设备上 svg 图像周围出现灰色边框

HTML5 音频样式