Как использовать код CSS Ribbon Generator для определенных изображений - PullRequest
0 голосов
/ 23 мая 2019

Я хочу использовать этот код из CSS Ribbon Generator, но он нужен только для определенных изображений, но не для всех.

У меня есть CSS и HTML. Неясно, к какому файлу я бы включил HTML в свою дочернюю тему, чтобы заставить CSS работать.

Мне нужна лента только для определенных изображений. Все плагины, которые я видел, устарели.

.box {
  width: 200px; height: 300px;
  position: relative;
  border: 1px solid #BBB;
  background: #EEE;
}
.ribbon {
  position: absolute;
  right: -5px; top: -5px;
  z-index: 1;
  overflow: hidden;
  width: 75px; height: 75px;
  text-align: right;
}
.ribbon span {
  font-size: 10px;
  font-weight: bold;
  color: #FFF;
  text-transform: uppercase;
  text-align: center;
  line-height: 20px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  width: 100px;
  display: block;
  background: #79A70A;
  background: linear-gradient(#F70505 0%, #8F0808 100%);
  box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
  position: absolute;
  top: 19px; right: -21px;
}
.ribbon span::before {
  content: "";
  position: absolute; left: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid #8F0808;
  border-right: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #8F0808;
}
.ribbon span::after {
  content: "";
  position: absolute; right: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid transparent;
  border-right: 3px solid #8F0808;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #8F0808;
}
<div class="box">
   <div class="ribbon"><span>PREMIUM</span></div>
</div>

Как добавить этот код для использования с определенными избранными изображениями и в какой файл поместить код HTML, чтобы CSS работал?

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете установить ленту только для определенных изображений, отделив их от других изображений, а затем используя JS, чтобы добавить ленту только к изображениям, которые удовлетворяют определенным критериям.

Здесь я использую класс featured для отделения изображений от других изображений, а затем использую javascript для добавления класса ribbon к этим изображениям.

let feat = document.querySelectorAll('.featured')
feat.forEach((img)=>{
 img.classList.add('ribbon')
})
.box {
  width: 200px; height: 300px;
  position: relative;
  border: 1px solid #BBB;
  background: #EEE;
}
.ribbon {
  position: absolute;
  right: -5px; top: -5px;
  z-index: 1;
  overflow: hidden;
  width: 75px; height: 75px;
  text-align: right;
}
.ribbon span {
  font-size: 10px;
  font-weight: bold;
  color: #FFF;
  text-transform: uppercase;
  text-align: center;
  line-height: 20px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  width: 100px;
  display: block;
  background: #79A70A;
  background: linear-gradient(#F70505 0%, #8F0808 100%);
  box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
  position: absolute;
  top: 19px; right: -21px;
}
.ribbon span::before {
  content: "";
  position: absolute; left: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid #8F0808;
  border-right: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #8F0808;
}
.ribbon span::after {
  content: "";
  position: absolute; right: 0px; top: 100%;
  z-index: -1;
  border-left: 3px solid transparent;
  border-right: 3px solid #8F0808;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #8F0808;
}
<div style="display:flex; justify-content: space-between; flex-wrap: wrap;">
<div class="box">
   <div class="featured"><span>PREMIUM</span></div>
</div>
<div class="box">
   <div class="featured"><span>PREMIUM</span></div>
</div>
<div class="box">
   <div class=""><span>PREMIUM</span></div>
</div>
<div class="box">
   <div class="featured"><span>PREMIUM</span></div>
</div>
<div class="box">
   <div class=""><span>PREMIUM</span></div>
</div>
<div class="box">
   <div class="featured"><span>PREMIUM</span></div>
</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...