0

Gridのdivセルの幅と高さが自動的に等しくなるようにしようとしています。これらのセルのコンテンツ サイズはさまざまであり、グリッド全体の幅も異なります。目標は、応答性が高く、セルの内容のサイズに依存しないようにすることです。react-bootstrap

また、これを実現するために React の FlexBox レイアウトのような最新のものを使用することも考えています (存在する場合)。以前は FlexBox を使用していましたが、このようなレイアウトを実現するにはおそらく FlexBox が最適であることを知っています。

import { Grid, Row, Col } from 'react-bootstrap';

...

<Grid fluid={true}>
    <Row className="show-grid" style={{border: "1px solid brown"}}>
        {dummyData.map(function(object, i){
            return <Col key={i} sm={6} md={3} style={{border: "1px solid yellow"}}>
                <div style={{width:"100%", height:"100%, border: "1px solid blue", backgroundImage:"url("+dummyData[i].url+")"}}>{dummyData[i].city}</div>
            </Col>;
        })}
    </Row>
</Grid>
4

1 に答える 1

3

解決策は、小道具として渡された幅に高さを設定する React コンポーネントを使用することでした。

import React from 'react';
import Dimensions from 'react-dimensions';

class Square extends React.Component {
    constructor(props) {
        super(props);
    }
    render() {
        return (
            <div
                style={{
                    width:this.props.containerWidth,
                }}>
                {this.props.city}
            </div>
        );
    }
}

export default Dimensions()(Square) // Enhanced component

グリッドへの対応する変更:

<Grid fluid={true}>
    <Row className="show-grid" style={{border: "1px solid brown"}}>
        {dummyData.map(function(object, i){
            return <Col key={i} sm={6} md={3} style={{border: "1px solid yellow"}}>
                <Square image={dummyData[i].url} title={dummyData[i].city} value={dummyData[i].value}></Square>
            </Col>;
        })}
    </Row>
</Grid>
于 2016-10-15T18:17:43.070 に答える