# Как мне выбрать темы «Не решено» с помощью CSS?

**URL:** https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370
**Category:** Development
**Tags:** solved, css
**Created:** [08.Июнь.2023 16:44:57 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370 "2023-06-08T16:44:57Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![dandv](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dandv/32/169779_2.png) [@dandv](https://meta.discourse.org/u/dandv)
#### Post date: [08.Июнь.2023 16:44:57 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370/1 "2023-06-08T16:44:57Z")

</div>

Какой селектор (или селекторы) CSS использовать для изменения стиля нерешённых тем?

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [12.Июнь.2023 16:41:38 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370/2 "2023-06-12T16:41:38Z")

</div>

Привет, Дан 👋

В списке тем это будет выглядеть так:

```css
.topic-list-item:not(.status-solved) {
    background: rgba(255,192,203,.2);
}

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/a/b/2ab4cc4b71bd38073a08a52974b12b1e39ed6e9e.png)

На странице темы нет конкретного класса, к которому можно было бы обратиться.

---

<div class="post-metadata">

### Author: ![dandv](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dandv/32/169779_2.png) [@dandv](https://meta.discourse.org/u/dandv)
#### Post date: [14.Июнь.2023 22:03:19 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370/3 "2023-06-14T22:03:19Z")

</div>

Спасибо, это сработало!

Один нюанс, похожий на [эту проблему](https://meta.discourse.org/t/searching-for-status-unsolved-returns-topics-from-non-solution-enabled-categories/267700), заключается в том, что поиск по отсутствию класса `status-solved` приводит к тому, что подсвечиваются и темы из категорий, где функция «Решено» не включена. В нашем случае я добавил второй класс к селектору, чтобы нацеливаться только на категорию поддержки:

```css
/* Подсветка нерешённых тем */
.topic-list-item.category-support:not(.status-solved) {
    background: rgba(255,192,203,.2);
}

```

Существует ли более универсальное решение, например, если появятся дополнительные категории с функцией «Решено», чтобы не дублировать селектор?

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [14.Июнь.2023 22:19:45 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370/4 "2023-06-14T22:19:45Z")

</div>

Я пытался придумать условие с подстановочным знаком для любой категории с включённой функцией «решено», но не смог. Однако вы можете объединить все соответствующие категории в один фрагмент кода:

```scss
 /* Подсветка нерешённых тем */
 
.topic-list-item.category-support, 
.topic-list-item.category-another_category,
.topic-list-item.category-yet_another_category:not(.status-solved) {
    background: rgba(255,192,203,.2);
}

```

Или можно создать компонент темы и добавить настройку для выбора любых категорий, к которым нужно применить это правило. Подозреваю, что способ таргетинга категорий с включённой функцией «решено» может существовать, но я пока не могу его найти. 🤔

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [15.Июнь.2023 07:57:44 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370/5 "2023-06-15T07:57:44Z")

</div>

Я не уверен, что мы можем определить, какие темы относятся к категории «решаемые» в списке тем.

Если вы не планируете менять настройку категории каждую неделю, вы можете модифицировать код, который вы и @Lilly написали: добавить цикл, чтобы сделать его более читаемым и поддерживаемым. Он по-прежнему будет использовать классы категорий.

Вы можете повторно использовать решение, предложенное здесь по этому вопросу:

> [@How to enable reactions only for certain categories?](https://meta.discourse.org/t/how-to-enable-reactions-only-for-certain-categories/267029/2?u=canapin):
>
> There is no such feature. A quick way to do it would be to hide the reactions selector with CSS, such as: .category-general-resources .discourse-reactions-picker { display: none; } If you want to iterate through multiple categories and make it easier to maintain, you can use a SCSS loop like this: $categories: 'general', 'site-feedback', 'staff'; @each $category in $categories { .category-#{$category} .discourse-reactions-picker { display: none; } } The category class is visible…

---

<div class="post-metadata">

### Author: ![Don](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/don/32/228726_2.png) [@Don](https://meta.discourse.org/u/Don)
#### Post date: [15.Июль.2023 17:04:57 UTC](https://meta.discourse.org/t/how-would-i-target-unsolved-topics-with-css/268370/6 "2023-07-15T17:04:57Z")

</div>

Привет 👋

Я создал компонент темы, который добавляет класс `.solvable-topic` к темам в списке решаемых тем.

> **[GitHub - VaperinaDEV/add-solvable-topic-class: This theme component adds a class to topic list if...](https://github.com/VaperinaDEV/add-solvable-topic-class)**
>
> This theme component adds a class to topic list if the topic is solvable (Discourse Solved).

После установки этого компонента темы вы можете добавить простой CSS, чтобы это работало. 🙂

```scss
.topic-list-item {
  &.solvable-topic {
    &:not(.status-solved) {
      background: red;
    }
  }
}

```
