Kostantinus
@Kostantinus
Siteplus, Front-end developer

У меня разные правила для разных случаев. Как оптимизировать CSS стили, чтобы прописать свойство cursor: pointer один раз?

Есть разные правила для определенных случаев. Нужно оптимизировать стили, чтобы свойство cursor: pointer было прописано один раз, при этом сохранив правила для разных случаев. Как это можно реализовать?
.product {
  &.grid .grid-product__text:not(._price),
  &.grid .grid-product__text._price,
  &.grid .grid-product__text .grid-product__text_inner {
    color: inherit !important;
  }

  &._photo-name-transition {
    ._name,
    ._image {
      cursor: pointer;
    }
  }

  &._name-transition {
    ._name {
      cursor: pointer;
    }
  }

  &._photo-transition {
    ._image {
      cursor: pointer;
    }
  }
}
  • Вопрос задан
  • 42 просмотра
Решения вопроса 2
delphinpro
@delphinpro Куратор тега CSS
frontend developer
Использовать экстенды

%cursor-pointer {
  cursor:pointer;
}

.product {
  &.grid .grid-product__text:not(._price),
  &.grid .grid-product__text._price,
  &.grid .grid-product__text .grid-product__text_inner {
    color: inherit !important;
  }

  &._photo-name-transition {
    ._name,
    ._image {
      @extend %cursor-pointer;
    }
  }

  &._name-transition {
    ._name {
      @extend %cursor-pointer;
    }
  }

  &._photo-transition {
    ._image {
      @extend %cursor-pointer;
    }
  }
}


Output:

.product._photo-name-transition ._name,
.product._photo-name-transition ._image,
.product._name-transition ._name,
.product._photo-transition ._image {
  cursor: pointer;
}

.product.grid .grid-product__text:not(._price),
.product.grid .grid-product__text._price,
.product.grid .grid-product__text .grid-product__text_inner {
  color: inherit !important;
}


Вместо этих заморочек, можно прогнать код через какой-нибудь css-оптимизатор, который умеет группировать свойства. Тут главное правильно его настроить.
Ответ написан
@Akela_wolf
Extreme Programmer
Использовать mixin-ы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы