4.22.3 • Published 2 years ago

@uiw/react-grid v4.22.3

Weekly downloads
227
License
MIT
Repository
github
Last release
2 years ago

Grid 栅格

Buy me a coffee Open in unpkg NPM Downloads npm version

基于 flex 栅格系统。

import { Row, Col } from 'uiw';
// or
import { Row, Col } from '@uiw/react-grid';

基础用法

import React from 'react';
import { Row, Col } from 'uiw';

const Box = ({ num, height, width, style, background }) => <div style={{ ...style, textAlign: 'center', paddingTop: 5, paddingBottom: 5, background, width, height}}>Col {num}</div>

export default function Demo() {
  return (
    <Row>
      <Col fixed style={{ width: 150 }}> <Box num="1" background="#A5A5A5" /> </Col>
      <Col grow={2}> <Box num="2" background="#dedede" /> </Col>
      <Col grow={1}> <Box num="3" background="#A5A5A5" /> </Col>
    </Row>
  );
}

Gutter

栅格间隔,可以写成像素值

import React from 'react';
import { Row, Col } from 'uiw';

const Blank = ({ num, height, width, style, background }) => <div style={{ ...style, textAlign: 'center', paddingTop: 5,paddingBottom: 5, background, width, height}}>Col {num}</div>

export default function Demo() {
  return (
    <div>
      <Row gutter={10}>
        <Col> <Blank background="#A5A5A5" num={1}/> </Col>
        <Col> <Blank background="#dedede" num={2}/> </Col>
        <Col> <Blank background="#A5A5A5" num={3}/> </Col>
      </Row>
      <Row style={{ marginTop: 10 }}>
        <Col> <Blank background="#A5A5A5" num={1}/> </Col>
        <Col> <Blank background="#dedede" num={2}/> </Col>
        <Col> <Blank background="#A5A5A5" num={3}/> </Col>
      </Row>
    </div>
  );
}

Flex 行设置列对齐

import React from 'react';
import { Row, Col } from 'uiw';

const colStyl = { backgroundColor: 'rgba(230, 230, 230, 0.67)', marginBottom: 10 }
const Blank = ({ num, height, style, background = '#2EA3F4' }) => <div style={{ ...style, textAlign: 'center', color: '#fff', paddingTop: 5, paddingBottom: 5, background, height}}>Col {num}</div>

export default function Demo() {
  return (
    <div>
      <Row gutter={10} justify="center" align="top" style={colStyl}>
        <Col span="2"> <Blank height={35} num={1}/> </Col>
        <Col span="2"> <Blank height={50} num={2}/> </Col>
        <Col span="2"> <Blank height={70} num={3}/> </Col>
      </Row>
      <Row gutter={10} justify="space-around" align="middle"  style={colStyl}>
        <Col span="2"> <Blank height={35} num={1}/> </Col>
        <Col span="2"> <Blank height={50} num={2}/> </Col>
        <Col span="2"> <Blank height={70} num={3}/> </Col>
      </Row>
      <Row gutter={10} justify="space-between" align="bottom" style={colStyl}>
        <Col span="2"> <Blank height={35} num={1}/> </Col>
        <Col span="2"> <Blank height={50} num={2}/> </Col>
        <Col span="2"> <Blank height={70} num={3}/> </Col>
      </Row>
      <Row gutter={10} justify="flex-end" align="bottom" style={colStyl}>
        <Col span="2"> <Blank height={35} num={1}/> </Col>
        <Col span="2"> <Blank height={50} num={2}/> </Col>
        <Col span="2"> <Blank height={70} num={3}/> </Col>
      </Row>
      <Row gutter={10} justify="center" align="baseline"  style={{ ...colStyl, marginBottom: 0 }}>
        <Col span="2"> <Blank height={85} style={{ lineHeight: '85px' }} num={1}/> </Col>
        <Col span="2"> <Blank height={50} num={2}/> </Col>
        <Col span="2"> <Blank height={70} num={3}/> </Col>
      </Row>
    </div>
  );
}

Flex 列对齐

import React from 'react';
import { Row, Col } from 'uiw';

const Blank = ({ num, style, background = '#2EA3F4' }) => <div style={{ ...style, textAlign: 'center', color: '#fff', paddingTop: 5, paddingBottom: 5, background }}>Col {num}</div>

export default function Demo() {
  return (
    <div>
      <Row gutter={10} style={{height: 130}}>
        <Col align="top"> <Blank num={1}/> </Col>
        <Col align="middle"> <Blank num={2}/> </Col>
        <Col align="bottom"> <Blank num={3}/> </Col>
      </Row>
    </div>
  );
}

对齐内容

import React from 'react';
import { Row, Col } from 'uiw';

const rowStyl = { backgroundColor: 'rgba(230, 230, 230, 0.67)', marginBottom: 10 }
const Blank = ({ num, height, width, style, background = '#2EA3F4' }) => <div style={{ ...style, textAlign: 'center', color: '#fff', paddingTop: 5, paddingBottom: 5, background, width, height}}>Col {num}</div>

export default function Demo() {
  return (
    <div>
      <Row gutter={10} justify="flex-start" style={rowStyl}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10} justify="center" style={rowStyl}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10} justify="flex-end" style={rowStyl}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10} justify="space-between" style={rowStyl}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10} justify="space-around" style={rowStyl}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10} justify="space-evenly" style={{...rowStyl, marginBottom: 0 }}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
      </Row>
    </div>
  );
}

24栅格

可以通过指定 24 列中每列的宽度来创建基本网格系统。

import React from 'react';
import { Row, Col } from 'uiw';

const Blank = ({ num, height, width, style, background = '#2EA3F4' }) => <div style={{ ...style, textAlign: 'center', color: '#fff', paddingTop: 5, paddingBottom: 5, background, width, height}}>Col {num}</div>

export default function Demo() {
  return (
    <div>
      <Row gutter={10} style={{ marginBottom: 10 }}>
        <Col span="2"> <Blank num={1}/> </Col>
        <Col span="2"> <Blank num={2}/> </Col>
        <Col span="2"> <Blank num={3}/> </Col>
        <Col span="2"> <Blank num={4}/> </Col>
        <Col span="2"> <Blank num={5}/> </Col>
        <Col span="2"> <Blank num={6}/> </Col>
        <Col span="2"> <Blank num={7}/> </Col>
        <Col span="2"> <Blank num={8}/> </Col>
        <Col span="2"> <Blank num={9}/> </Col>
        <Col span="2"> <Blank num={10}/> </Col>
        <Col span="2"> <Blank num={11}/> </Col>
        <Col span="2"> <Blank num={12}/> </Col>
      </Row>
      <Row gutter={10} style={{ marginBottom: 10 }}>
        <Col span="16"> <Blank num={1}/> </Col>
        <Col span="8"> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10} style={{ marginBottom: 10 }}>
        <Col span="8"> <Blank num={1}/> </Col>
        <Col span="8"> <Blank num={2}/> </Col>
        <Col span="8"> <Blank num={3}/> </Col>
      </Row>
      <Row gutter={10}>
        <Col span="12"> <Blank num={1}/> </Col>
        <Col span="12"> <Blank num={2}/> </Col>
      </Row>
    </div>
  );
}

动态列增长

import React from 'react';
import { Row, Col } from 'uiw';

const Blank = ({ num, style, background = '#2EA3F4' }) => <div style={{ ...style, textAlign: 'center', color: '#fff', paddingTop: 5, paddingBottom: 5, background }}>Col {num}</div>

export default function Demo() {
  return (
    <div>
      <Row gutter={10} style={{ marginBottom: 10 }}>
        <Col> <Blank num={1}/> </Col>
        <Col grow={2}> <Blank num={2}/> </Col>
      </Row>
      <Row gutter={10}>
        <Col> <Blank num={1}/> </Col>
        <Col grow={2}> <Blank num={2}/> </Col>
        <Col grow={5}> <Blank num={3}/> </Col>
      </Row>
    </div>
  );
}

Row

参数说明类型默认值
gutter栅格间隔间距number-
justifyflex 布局下的水平排列方式Enum{flex-start, flex-end, center, space-between, space-around, space-evenly}-
alignflex 布局下的垂直对齐方式Enum{top, middle, bottom, baseline}-

Col

参数说明类型默认值
fixed如果为 true,则列宽固定为其内容的宽度boolean-
grow列的宽度相对于同一网格中其他列的比率number-
align网格中列的对齐方式Enum{top, middle, bottom, baseline}-
4.22.0

2 years ago

4.22.1

2 years ago

4.22.2

2 years ago

4.22.3

2 years ago

4.21.26

2 years ago

4.21.25

2 years ago

4.21.28

2 years ago

4.21.27

2 years ago

5.0.0-bate.2.1

2 years ago

5.0.0-bate.2.0

2 years ago

4.21.24

2 years ago

5.0.0-bate-19

3 years ago

4.21.22

2 years ago

4.21.21

2 years ago

4.21.23

2 years ago

5.0.0-bate-18

3 years ago

5.0.0-bate-14

3 years ago

5.0.0-bate-17

3 years ago

5.0.0-bate-10

3 years ago

5.0.0-bate-11

3 years ago

5.0.0-bate-12

3 years ago

5.0.0-bate-9

3 years ago

5.0.0-bate-7

3 years ago

5.0.0-bate-8

3 years ago

5.0.0-bate-6

3 years ago

4.21.20

3 years ago

4.21.19

3 years ago

4.21.18

3 years ago

4.21.15

3 years ago

4.21.17

3 years ago

4.21.16

3 years ago

5.0.0-bate-5

3 years ago

5.0.0-bate-3

3 years ago

5.0.0-bate-4

3 years ago

5.0.0-bate-1

3 years ago

5.0.0-bate-2

3 years ago

5.0.0-bate-0

3 years ago

4.21.13

3 years ago

4.21.14

3 years ago

4.21.11

3 years ago

4.21.12

3 years ago

4.21.10

3 years ago

4.21.1

3 years ago

4.21.2

3 years ago

4.21.3

3 years ago

4.21.4

3 years ago

4.21.0

3 years ago

4.20.0

3 years ago

4.21.9

3 years ago

4.21.5

3 years ago

4.21.6

3 years ago

4.21.7

3 years ago

4.21.8

3 years ago

4.18.1

3 years ago

4.18.0

3 years ago

4.17.0

3 years ago

4.16.0

3 years ago

4.16.1

3 years ago

4.16.2

3 years ago

4.19.0

3 years ago

4.15.1

3 years ago

4.14.1

3 years ago

4.14.2

3 years ago

4.14.0

3 years ago

4.13.7

3 years ago

4.13.8

3 years ago

4.13.9

3 years ago

4.13.11

3 years ago

4.13.12

3 years ago

4.13.10

3 years ago

4.15.0

3 years ago

4.10.5

3 years ago

4.10.6

3 years ago

4.10.7

3 years ago

4.9.9

3 years ago

4.10.1

3 years ago

4.10.2

3 years ago

4.10.3

3 years ago

4.10.4

3 years ago

4.10.0

3 years ago

4.13.6

3 years ago

4.13.2

3 years ago

4.13.3

3 years ago

4.13.4

3 years ago

4.13.5

3 years ago

4.13.0

3 years ago

4.13.1

3 years ago

4.12.0

3 years ago

4.12.1

3 years ago

4.12.2

3 years ago

4.11.4

3 years ago

4.11.5

3 years ago

4.11.6

3 years ago

4.9.11

3 years ago

4.9.10

3 years ago

4.11.0

3 years ago

4.11.1

3 years ago

4.11.2

3 years ago

4.11.3

3 years ago

4.9.7

4 years ago

4.9.6

4 years ago

4.9.4

4 years ago

4.9.3

4 years ago

4.9.2

4 years ago

4.9.1

4 years ago

4.9.0

4 years ago

4.8.9

4 years ago

4.8.8

4 years ago

4.7.16

4 years ago

4.8.5

4 years ago

4.8.4

4 years ago

4.8.7

4 years ago

4.8.6

4 years ago

4.8.1

4 years ago

4.8.0

4 years ago

4.8.3

4 years ago

4.8.2

4 years ago

4.7.13

4 years ago

4.7.14

4 years ago

4.7.15

4 years ago

4.7.12

4 years ago

4.7.10

4 years ago

4.7.11

4 years ago

4.7.9

4 years ago

4.7.8

4 years ago

4.7.6

4 years ago

4.7.7

4 years ago

4.7.5

4 years ago

4.7.4

4 years ago

4.7.3

4 years ago

4.7.2

4 years ago

4.7.0

4 years ago

4.6.19

5 years ago

4.6.15

5 years ago

4.6.16

5 years ago

4.6.17

5 years ago

4.6.18

5 years ago

4.6.14

5 years ago

4.6.13

5 years ago

4.6.11

5 years ago

4.6.12

5 years ago

4.6.10

5 years ago

4.6.9

5 years ago

4.6.8

5 years ago

4.6.7

5 years ago

4.6.6

5 years ago

4.6.3

5 years ago

4.6.4

5 years ago

4.6.2

5 years ago

4.6.1

5 years ago

4.6.0

5 years ago

4.5.0

5 years ago

4.4.1

5 years ago

4.4.0

5 years ago

4.3.1

5 years ago

4.2.3

5 years ago

4.2.5

5 years ago

4.3.0

5 years ago

4.2.14

5 years ago

4.2.1

5 years ago

4.2.0

5 years ago

4.1.2

5 years ago

4.1.0

5 years ago

4.1.1

5 years ago

4.0.0

5 years ago

4.0.0-alpha.7

5 years ago

4.0.0-alpha.8

5 years ago

4.0.0-alpha.6

5 years ago

4.0.0-alpha.3

5 years ago

4.0.0-alpha.2

5 years ago

4.0.0-alpha.1

5 years ago

4.0.0-alpha.0

5 years ago