Обтравочная маска Дизайн с несколькими формами / элементами
В настоящее время у меня есть этот элемент дизайна для создания. Первоначально я построил его, используя 3 отдельных контейнера с квадратными элементами с независимыми фоновыми изображениями, которые только что вырезаны из дизайна, но это кажется мне очень жестким (нам нужно было бы нарезать и заново создавать новое изображение каждый раз, когда мы хотим изменить его) а также громоздкие. В идеале я хотел бы использовать одно изображение для каждого контейнера элементов, чтобы его можно было легко обновить. Это также экономит на двух ненужных запросах к серверу, которые я поддерживаю!
Просто хотел опросить, чтобы увидеть, есть ли лучший / более динамичный способ сделать это. Думаешь, возможно, с помощью JavaScript? Любая помощь или очки в правильном направлении будет принята с благодарностью. Ниже приведено описание того, как я его сейчас строю. Прилагается фрагмент макета дизайна для справки.
HMTL
<div class="grid-container">
<div class="grid-1 gi" style="background-image:url(image1.jpg);">Facebook</div>
<div class="grid-2 gi" style="background-image:url(image2.jpg);">Twitter</div>
<div class="grid-3 gi" style="background-image:url(image3.jpg);">Instagram</div>
</div>
CSS
.gi {
background-position: center center;
background-size: cover;
width: 32.333%;
}
.grid-1 {
margin-right: 1%;
}
.grid-2 {
margin: 0 1%;
}
.grid-3 {
margin-left: 1%;
}
1 ответ
Итак, я тупой и нашел простой и элегантный обходной путь! Вместо того, чтобы вырезать, я просто создал две псевдо-границы для сервера в качестве разделителей внутри оболочки с нужным фоновым изображением и дал каждому соответствующий цвет фона. Решение & jsfiddle ниже.
HTML
<div class="social-blocks flex" style="background-image: url(http://localhost:8888/sts-store/wp-content/uploads/2016/01/eric.jpg)">
<div class="social-block auto-ar oneone flex align-center-center block-1" style="height: 381px;">
<div>facebook</div>
</div>
<div class="pseudo-margin"></div>
<div class="social-block auto-ar oneone flex align-center-center block-2" style="height: 381px;">
<div>twitter</div>
</div>
<div class="pseudo-margin"></div>
<div class="social-block auto-ar oneone flex align-center-center block-3" style="height: 381px;">
<div>instagram</div>
</div>
</div>
CSS
.align-center-center {
align-items: center;
-webkit-align-items: center;
-moz-align-items: center;
-ms-align-items: center;
justify-content: center;
-ms-justify-content: center;
-moz-justify-content: center;
-o-justifty-content: center;
}
.flex {
display: flex;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
}
.social-block {
width: 32.333%;
overflow: hidden;
position: relative;
color: #fff;
text-transform: uppercase;
font-weight: 600;
font-size: 28px;
font-style: italic;
}
.social-blocks {
margin-bottom: 2%;
background-position: center bottom;
background-size: cover;
}
.social-blocks-bg {
width: 100%;
}
.pseudo-margin {
width: 2%;
background-color: rgb(247,247,247);
}