材质 UI 和网格系统

IT技术 reactjs material-design material-ui grid-system
2021-03-25 22:52:34

我正在玩Material-UI是否有任何创建网格布局的选项(例如在Bootstrap 中)?

如果没有,添加此功能的方法是什么?

有一个GridList 组件,但我想它有一些不同的目的。

6个回答

Material UI 已经通过Grid 组件实现了他们自己的 Flexbox 布局

看起来他们最初希望将自己保留为纯粹的“组件”库。但是其中一位核心开发人员认为不拥有自己的. 它现在已合并到核心代码中,并随 v1.0.0一起发布

您可以通过以下方式安装它:

npm install @material-ui/core

它现在在带有代码示例的官方文档中

我看到您发布了我刚要添加的答案!哈哈。刚刚回复了您对当前领先答案的评论。
2021-05-23 22:52:34
网格系统运行良好,但有一些组件尚未实现,例如Select Field. 我被困在如何使用这些领域。你能帮我解决这个问题吗?
2021-06-03 22:52:34
@SaiRam 我不会说最多,但确实Select缺少,我现在只是用单选按钮替换了它,但我相信不久之后选择从主干移植。
2021-06-12 22:52:34
我同意@SureshMainali,因为我也面临同样的问题。大多数组件都缺少道具,甚至还缺少自定义主题实现
2021-06-19 22:52:34
现在刚刚安装并使用 Material UI 的 alpha 分支。可以确认Layout系统运行良好。
2021-06-21 22:52:34

材料设计规范的描述

网格列表是标准列表视图的替代方案。网格列表不同于用于布局和其他视觉呈现的网格。

如果您正在寻找一个轻量级的 Grid 组件库,我正在使用React-Flexbox-Grid,它是flexboxgrid.cssReact 中的实现

最重要的是,React-Flexbox-Gridmaterial-uireact-toolbox(替代材料设计实现)配合得很好

@ icc97 是和否。并不是真的打算“竞争”,这更像是我正在构建的应用程序的一个止损。在对两者都感到失望之后,我做到了……但这真的不再重要了,因为 CallEmAll 的人在最新版本的 Material-UI 中包含了一个网格系统。不过我个人还没有尝试过。github.com/callemall/material-ui/pull/5808
2021-05-24 22:52:34
此外,react-flexbox-grid 依赖于 flexboxgrid,它不使用 Material Design 中推荐的相同响应断点。参见:material.io/guidelines/layout/...
2021-06-06 22:52:34
React-Flexbox-Grid 在这篇文章的时候实现得很差,需要很多外部依赖才能正常运行。另外,@Roylee 是它的开发者...所以他的观点无论如何都有点偏见;)...
2021-06-09 22:52:34
@Cleanshooter 你的看起来不错。我一直在测试新的 Material-UI 网格,到目前为止它运行良好。
2021-06-12 22:52:34
@Cleanshooter 这会是您的竞争版本吗?也许你也有点偏见:)
2021-06-21 22:52:34

我四处寻找答案,我发现最好的方法是在不同的组件上使用 Flex 和内联样式。

例如,要使两个纸组件将我的全屏分成 2 个垂直组件(比例为 1:4),以下代码可以正常工作。

const styles = {
  div:{
    display: 'flex',
    flexDirection: 'row wrap',
    padding: 20,
    width: '100%'
  },
  paperLeft:{
    flex: 1,
    height: '100%',
    margin: 10,
    textAlign: 'center',
    padding: 10
  },
  paperRight:{
    height: 600,
    flex: 4,
    margin: 10,
    textAlign: 'center',
  }
};

class ExampleComponent extends React.Component {
  render() {
    return (
      <div>
        <div style={styles.div}>
          <Paper zDepth={3} style={styles.paperLeft}>
            <h4>First Vertical component</h4>
          </Paper>
          <Paper zDepth={3} style={styles.paperRight}>
              <h4>Second Vertical component</h4>
          </Paper>
        </div>
      </div>
    )
  }
}

现在,通过更多计算,您可以轻松地在页面上划分组件。

进一步阅读 flex

我同意,使用 flex css 属性提供了我需要的简单格式。
2021-06-09 22:52:34

我希望现在给出回应还为时不晚。

我也在寻找一个简单、健壮、灵活且高度可定制的引导程序,如react网格系统,以在我的项目中使用。

我所知道的最好的是react-pure-grid https://www.npmjs.com/package/react-pure-grid

react-pure-grid 使您能够自定义网格系统的各个方面,同时它内置了可能适合任何项目的默认值

用法

npm install react-pure-grid --save

——

import {Container, Row, Col} from 'react-pure-grid';

const App = () => (
      <Container>
        <Row>
          <Col xs={6} md={4} lg={3}>Hello, world!</Col>
        </Row>
        <Row>
            <Col xsOffset={5} xs={7}>Welcome!</Col>
        </Row>
      </Container>
);

我的方法是访问http://getbootstrap.com/customize/并只检查“网格系统”进行下载。下载的文件中bootstrap-theme.cssbootstrap.css,我只需要后者。

通过这种方式,我可以使用 Bootstrap 的网格系统,以及 Material UI 中的所有其他内容。