#html #css #bootstrap-4 #background-image
#HTML #css #bootstrap-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. Спасибо! Я посмотрю, как только получу мин.