javascript - 反应 UI 元素放置?
问题描述
我是 React 的新手,所以如何放置 UI 元素让我有点不知所措。
但我无法完全弄清楚。在黑盒子里应该有一组复选框(我已经制作的一个组件)垂直堆叠,在蓝色盒子里同样的一组复选框,但水平放置。在红色框中,一个谷歌散点图(我也设置好了)。
使用反应列我认为我可以设置它,使用两个列。但后来我意识到我必须以某种方式为复选框设置父级,所以这不是解决方案。
然后我想“为什么不使用网格?” 所以我发现 Google 在他们的 Material 包中有网格(这很好,因为我以任何方式使用它)所以我导入了它,但我仍然不能完全正确:
我将如何解决这个问题?
我的代码如下:
return(
<div>
<Grid container spacing={0}>
<Grid item xs={3}>
<CheckboxContainer checkboxes={checkboxes}/>
</Grid>
<Grid item xs={9}>
<Chart
height="400px"
chartType="ScatterChart"
loader={<div>Loading Chart</div>}
data={[
['Level','Y'],
[-4,-1],
[-3,3],
[-2,-2],
[-1,1],
[0,5],
[1,14],
[2,5],
[3,3.5],
[4,7],
]}
options={{
title: 'Transparency',
hAxis: { title: 'Level', minValue: -9, maxValue: 9 },
vAxis: { title: 'Y', minValue: -9, maxValue: 9 },
legend: 'none',
}}
rootProps={{ 'data-testid': '1'}}
/>
</Grid>
<Grid item xs={12}>
<CheckboxContainer checkboxes={checkboxes} />
</Grid>
</Grid>
</div>
)
解决方案
您可以使用纯 CSS 轻松创建此布局,将 flexbox 用于水平和垂直复选框,并使用浮动用于散点图。
render() {
return (
<div className="page">
<div className="main">
<div className="sidebar">
<div>
Check this
<input type="checkbox"/>
</div>
<div>
Check this
<input type="checkbox"/>
</div>
</div>
<div className="main">
<div>
Check this
<input type="checkbox"/>
</div>
<div>
Check this
<input type="checkbox"/>
</div>
</div>
</div>
<div className="footer">
Scatter plot here
</div>
</div>
);
.page {
width: 100vw;
}
.main {
display: flex;
}
.sidebar {
display: flex;
flex-direction: column;
width: 20%;
}
.footer {
float: right;
width: 80%;
}
在JSFiddle中查看此代码。
推荐阅读
- python - 如何使用python替换excel文件中的单词
- react-native - React Native - 从另一个屏幕触发使用效果
- clickhouse - 如何检查 clickhouse 数据库服务器实时/活动连接
- uwp - 在 Microsoft 商店应用程序运行状况分析报告中将失败名称设为“未知”
- php - Text Past 不适用于创新的内容生成器
- ios - 将 UITextField heightAnchor 设置为 0 在 iOS 15 上不起作用
- javascript - 以选择特定列表项为条件进行文本输入
- r - 将data.frame转换为R中分隔字符串的函数的高性能实现
- r - Reading specific columns and rows from excel sheet in R
- javascript - 如何在 MAPBOX 中将过滤器的结果绘制成不同的颜色