Чтобы превратить ваш бриллиант в идеально отзывчивый, я удалил ваше поле и работал только со свойством transform: translateX-Y и rotate (мне кажется, это более управляемо).
Я добавил медиазапрос для преобразования его в сетку с 2-мя блоками в любой строке.(340 очень мало, чтобы увидеть, что он работает здесь, поэтому я изменил его на 640px, но вы можете написать любую ширину, которую вы хотите, также 340px: результат тот же).
Чтобы создать масштабируемый квадрат, я использовалинтересная техника, которую вы можете найти хорошо объясненной здесь (спасибо @ G-Cyr +1 за него): сетка квадратов css с flexbox .
Я пытался скопировать «алмаз»на изображении, которое вы включили в свой пост.
HTML такой же, я играл только с CSS.
Надеюсь, это поможет.
Это код:
body{
background-color:#131313;
}
* {
box-sizing: border-box
}
.container {
display: flex;
max-width:940px;
width:60vw;
flex-wrap: wrap;
margin:0 auto;
}
.container .item {
flex: 1 0 auto;
height:auto;
width: 50%;
background-color: #424242;
}
.container .item:nth-child(1) {
transform: translateY(25%) translateX(-25%) rotate(45deg);
}
.container .item:nth-child(2) {
transform: translateY(25%) translateX(25%) rotate(45deg);
}
.container .item:nth-child(3) {
transform: translateY(75%) translateX(-25%) rotate(45deg);
}
.container .item:nth-child(4) {
transform: translateY(75%) translateX(25%) rotate(45deg);
}
.container .item:nth-child(5) {
transform: translateY(125%) translateX(-25%) rotate(45deg);
}
.container .item:nth-child(6) {
transform: translateY(125%) translateX(25%) rotate(45deg);
}
.container .item:before {
content:'';
float:left;
padding-top:100%;
}
.container .item:hover {
background-color: #3e9eff;
transition: all .3s ease;
}
@media (min-width: 640px){
.container .item {
width: 33.3333%;
}
.container .item:nth-child(1) {
transform: translateY(25%) translateX(-50%) rotate(45deg);
}
.container .item:nth-child(2) {
transform: translateY(25%) rotate(45deg);
}
.container .item:nth-child(3) {
transform: translateY(25%) translateX(50%) rotate(45deg);
}
.container .item:nth-child(4) {
transform: translateY(0%) translateX(25%) rotate(45deg);
}
.container .item:nth-child(5) {
transform: translateY(0%) translateX(75%) rotate(45deg);
}
.container .item:nth-child(6) {
transform: translateY(75%) translateX(-100%) rotate(45deg);
}
}
<div class="container">
<a href="#" class="item"></a>
<a href="#" class="item"></a>
<a href="#" class="item"></a>
<a href="#" class="item"></a>
<a href="#" class="item"></a>
<a href="#" class="item"></a>
</div>