これが私のアプローチです。2 つの div を互いに入れ子にすることが、ローテーションの目的であったのか、それとも他の意味を持っていたのかはわかりません。とにかく、私はこのようにしました:
.views-row {
width: 130px;
height: 130px;
-webkit-transform: rotate(45deg);
}
.views-row-first {
-webkit-transform-origin: 195px center;
}
.views-row-even {
-webkit-transform-origin: center center;
}
.views-row-odd {
-webkit-transform: rotate(-45deg);
-webkit-transform-origin: -65px center;
}
それぞれ.views-row
が回転し、変換の原点はすべて中央の div の中心を指します。transform-origin
値は幅の半分 (130px / 2) の多重度であることに注意してください。完全な CSSについては、更新された FIDDLE
を
参照してください。のプロパティも追加したので、すべてクリック可能であることがわかります。:hover
.diamonds-container
アップデート
あなたが追加した写真で、問題ははるかに複雑になりました。しかし、私はそれを理解しました。
ヒント: フィドルが待ちきれない場合は、回答の一番下にあります。
アイデア:
正方形のボックスは 2 回入れ子になっています。2 つ.diamond
のボックスはそれぞれ.pair-wrapper
div でラップされます。その div は 45 度回転し、コンテナーに沿って数回繰り返されます。それぞれの偶数 .pair-wrapper
は、右隣を適切に配置するために幅を広げています。
の束が.pair-wrappers
で包まれてい.line-wrapper
ます。必要なだけ追加できます (覚えておいてください -.line-wrappers
収まらない場合は新しい行に分割されます)。.pair-wrapper
.pair-wrappers
最後に、それぞれ.line-wrapper
に固定の高さと隠しオーバーフローがあり、その子領域を上下から制限します。それぞれ.pair-wrapper
が相対的に位置付けられ、負のtop
値を持ちます。
解決策は主に固定値に基づいていますが、どちらもより良いアイデアを見つけることができました。
コード
HTML マークアップの例は次のようになります。
<div class="line-wrapper line-wrapper-odd">
<div class="pair-wrapper pair-wrapper-odd">
<div class="diamond-box"></div>
<div class="diamond-box"></div>
</div>
<div class="pair-wrapper pair-wrapper-even">
<div class="diamond-box"></div>
<div class="diamond-box"></div>
</div>
<div class="pair-wrapper pair-wrapper-odd">
<div class="diamond-box"></div>
<div class="diamond-box"></div>
</div>
</div>
<div class="line-wrapper line-wrapper-even">
<div class="pair-wrapper pair-wrapper-odd">
<div class="diamond-box"></div>
<div class="diamond-box"></div>
</div>
.....
</div>
.....
CSS の最も重要な部分 (フィドル内の完全な CSS):
.line-wrapper {
height: 170px;
overflow: hidden;
}
.line-wrapper-even {
margin-left: -92px;
}
.pair-wrapper {
width: 130px;
position: relative;
top: -26px;
-webkit-transform: rotate(45deg);
}
.pair-wrapper-odd {
-webkit-transform-origin: 65px 65px;
}
.pair-wrapper-even {
-webkit-transform-origin: 92px 131px;
width: 239px;
}
.diamond-box {
width: 130px;
height: 130px;
}
フィドル
http://jsfiddle.net/N3V6J/3/