reactjs - 如何使用 Material Ui 处理不同布局的网格
问题描述
我很确定很多人都问过同样的问题,但我没有找到答案,对不起。
我正在尝试了解如何将网格与 Material-ui 一起使用。
这是解释我的问题的 图片:解释我的问题的图片
所以,我的窗口有 Material UI 的 12 个标准列。
在此窗口中,红色部分 (1) 占用 2 列。另一大部分 (2) 占用 10 列。
在第二部分中,我有几个蓝色元素,每个元素占用 3 列。
如何设计我的蓝色元素以始终采用“全窗口的 3 列”而不是“父元素的 3 列”?
因为,此时我可以编码:
红色部分 = 2 列
大部分 = 10 列
蓝色元素 = 10 列中的 3 列 大部分
但我不能说:蓝色元素 = 整个窗口的 3 列
我可以使用 CSS vw 属性并添加边距,但我想有一种方法可以只使用 Material-ui Grid,不是吗?
我希望清楚我的问题。
谢谢你们 !
解决方案
这可以通过嵌套网格或CSS 网格布局来解决
例子
const { useState, useEffect } = React;
const { Grid, Paper } = window.MaterialUI;
const App = () => {
return <Grid className="grid" wrap="wrap" container direction="row">
<Grid style={{flex: '1'}} container direction="column" justify="center">
<Paper style={{border: '1px solid white', background: 'red', flex: '1'}} elevation={3}/>
<Paper style={{border: '1px solid white', background: 'red', flex: '1'}} elevation={3}/>
</Grid>
<Grid style={{flex: '2 1 0'}} wrap="wrap" container direction="row">
{[...Array(9).keys()].map(pr =>
<Paper key={pr} style={{backgroundColor: 'blue', border: '1px solid white', flex: '1 1 32%'}} />
)}
</Grid>
</Grid>
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
html, body {
height: 100%;
margin: 0;
}
#root, .grid {
height: inherit;
}
<script src="https://unpkg.com/react/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.development.js"></script>
<script src="https://unpkg.com/material-ui-lab-umd@4.0.0-alpha.32/material-ui-lab.development.js"></script>
<div id="root"></div>
推荐阅读
- javascript - 当 csv 列的名称在 Angular 中包含空格时,有没有办法读取它?
- node.js - 未从 mongo 数据库中获取数据。收到一个空错误。尽管 mongo 云中存在集合
- java - 使用 Gson 反序列化 LocalDate 的问题
- apache-spark - Apache Spark 中的自动批处理
- python - 具有默认属性工厂的 Python 类
- javascript - 带有小数的数字的角度指令和键盘复制粘贴支持
- java - 无法从抽屉菜单上的链接打开本地 HTML 页面
- python - python - 当我在各种长度的元组中进行选择时,如何计算元组的长度而不是python中字符串的长度
- python - 如何在 python 中使用 API 更新 Strava 活动?
- javascript - 向安全网站发送 AJAX 请求