раздел ссылок во всю ширину 4 столбца

#html #css #bootstrap-4 #background-image

#HTML #css #bootstrap-4 #фоновое изображение

Вопрос:

Я собираюсь создать раздел на предстоящем веб-сайте, в котором будет раздел ссылок с 4 столбцами, который выглядит как на скриншоте ниже.

Раздел ссылок с 4 столбцами

Каждое поле будет интерактивной ссылкой, и при наведении они будут менять цвет. Я использую платформу boostrap.

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

Есть ли способ, которым я могу создать каждое поле в HTML, включая шеврон, а затем просто добавить фоновое изображение для изображения в фоновом режиме?

Дайте мне знать, если у кого-нибудь есть какие-либо идеи

Комментарии:

1. С какой частью вы боретесь? Пожалуйста, покажите нам свои попытки и какой-нибудь код.

2. @lupz Я просто прошу рекомендации о наилучшем способе сделать это, как указано в вопросе. Просто интересно, знает ли кто-нибудь лучший способ? Спасибо.

Ответ №1:

Я создал для вас простой пример в чистом css. Я добавил комментарии в код

 .blocks {
  display: flex;
  width: 100%;
  height: 50px;
}

.blocks .block {
  flex: 0 0 25%;
  background-color: blue;
  position: relative;
  display: flex;
}

.blocks .block a {
  
  padding-left: 30px; /* so the triangle doesnt overlap the text */
  color: white;
  margin: auto 0;
}

/* not(:last-child) so the last one will not have the triangle */
.blocks .block:not(:last-child)::after {
  content:"";
  position:absolute;
  border-left:15px solid blue; /*This is your color of the arrow*/
  border-top:25px solid transparent; /*half the height (50px)*/
  border-bottom:25px solid transparent; /*half the height (50px)*/
  right:-15px; /*we want it on far right and overlapping the next block*/
  top:0;
  z-index: 1;
}

/* 2n selector selects every second element so you can have diffrent colors automaticly */
.blocks .block:nth-of-type(2n) {
  background-color: green;
}

.blocks .block:nth-of-type(2n)::after {
  border-left:15px solid green;
}  
 <div class="container">
  <section class="blocks">
    <div class="block">
      <a href="#">
        Block1
      </a>
    </div>
    <div class="block">
      <a href="#">
        Block2
      </a>
    </div>
    <div class="block">
      <a href="#">
        Block3
      </a>
    </div>
    <div class="block">
      <a href="#">
        Block4
      </a>
    </div>
  </section>
</div>  

Комментарии:

1. Спасибо @NicoShultz, вот и все! Как будет работать фоновое изображение за ними? Например, если бы вы изменили непрозрачность блоков на 80%, а затем отображали изображение за ними? Еще раз спасибо.

2. Ах, я не видел изображения, я посмотрю, смогу ли я найти решение для вас и обновить свой ответ, это немного усложняет ситуацию

3. @NathanClancy Мне жаль, что сегодня у меня больше не будет времени, чтобы заставить его работать в полную силу, но это может помочь вам jsfiddle.net/83xrhps7/57 (в качестве фона используется одно изображение, а не другое изображение для каждого блока)

4. Спасибо! Я посмотрю, как только получу мин.