現在、スタイルが適用されたコンポーネントと反応して応答性のある六角形グリッドで作業しています。現時点では、ウィンドウが変更されたときにすべてのdivを再配置するのは、単一のテーブル行(またはflexbox - 機能は同じです)です。しかし、すべての2番目の行にはmargin-left: 56px;
が必要です。レンダリングされる六角形の数が絶えず変化するため、これは動的に/反応的に行う必要があります。応答区画内でオーバーフローラッピングに起因するすべての2番目のビジュアル行をインデントする方法
私はdivを他のdivにあふれさせようとしましたが、これはすばらしい解決策ですが、実装する方法がわかりません。また、ヘキサゴンの位置を追跡し、マージンを追加したり削除したりするときに、その位置を追跡しようとしましたが、どうやってそれを行うかはわかりません。
import React, { Component } from 'react';
import styled from 'styled-components';
import './App.css';
class App extends Component {
render() {
return (
<div>
<HexRow>
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
<Hex />
</HexRow>
</div>
);
}
}
const HexRow = styled.div`
clear: left;
margin-bottom: 60px;
margin-left: 55px;
`
const Hex = styled.div`
&:before {
content: " ";
width: 0; height: 0;
border-bottom: 30px solid #6C6;
border-left: 52px solid transparent;
border-right: 52px solid transparent;
position: absolute;
top: -30px;
}
width: 104px;
height: 60px;
background-color: #6C6;
position: relative;
float: left;
margin-top: 30px;
margin-bottom: 9px;
margin-right: 10px;
&:after {
content: "";
width: 0;
position: absolute;
bottom: -30px;
border-top: 30px solid #6C6;
border-left: 52px solid transparent;
border-right: 52px solid transparent;
}
`;
export default App;
任意の助けやポインタが理解されます!むしろ自明下図のよう
私はあなただけCSSでそれを行うことができると思います。奇数と偶数の擬似セレクタを確認してください - https://www.w3schools.com/cssref/sel_nth-child.asp – AntonZlatkov
視覚的な行ごとに、常に同じ数の六角形ですか?レスポンシブと言うときは、ページのサイズを変更すると解像度に合わせてビューが変わるようなレスポンシブなページですか?六角形の数が変化することがあります。 – Huangism
@Huamgism各視覚的な行は常に同じ番号を持ちますが、その数はdivの幅に応じて変化します。このコンポーネントが複数の場所で使用されるため、六角形の総数も変化します –