React & Ant-Design 应用 —— 自适应居中组件(Grid栈格设置布局Space间距设置)
Posted Silam Lin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React & Ant-Design 应用 —— 自适应居中组件(Grid栈格设置布局Space间距设置)相关的知识,希望对你有一定的参考价值。
React & Ant-Design 应用 —— Grid栈格设置布局、Space间距设置自适应内容
今天在实践中,我第一次使用了Grid栈格来设置布局,也用了Space来设置合适的间距。通过Grid配合Space,设置出来了居中且自适应的Ant-Design组件。因为是第一次使用到Grid和Space,所以做一些记录。可供居中布局、自适应参考。
问题描述
今天还是在处理DatePicker日期选择器这个组件的其他功能交互。但在调试的时候偶然间发现了它样式上存在一点问题:在小屏幕上出现了超出弹窗的问题。
超出范围显示肯定是有问题的。我想了想为什么,最后想起来问题在于,我给DatePicker的width设置成了180%。
这样设置是不好的。但那时候想先把样式做出来,而且发现datepicker本身除了设置size大中小和width百分比,并且DatePicker是inline-flex,默认宽度是自身内容宽度。很难把它调成我想要的长度大小。所以就乱来了:在大屏幕上没有问题,但在小屏幕上显示,DatePicker就超出了弹窗范围。
既然问题出在这里,就只能老实把width设置成正常的100%了。
另外我设置组件元素为居中是通过flex设置的:
.content
display:flex;
justify-content:center;
在看Ant-Design的官网时,偶然间看到了Grid栈格,我感觉可以尝试用它来做一个居中布局。
居中布局 :Grid栈格
① 引入 Row,Col
import React from 'react';
import ReactDOM from 'react-dom';
import Row, Col from 'antd';
② 使用
ReactDOM.render(
<Row>
<Col span=4>col-4</Col>
<Col span=16>col-16</Col>
<Col span=4>col-4</Col>
</Row>
document.getElementById('container'),
);
③ 实现自适应居中布局
④ 加入DatePicker日期选择器组件
ReactDOM.render(
<>
<Row>
<Col span=4>col-4</Col>
<Col span=16>
<DatePicker format="YYYY-MM-DD" style= width: '100%' />
</Col>
<Col span=4>col-4</Col>
</Row>
</>,
document.getElementById("container")
);
嗯,还是回到矛盾问题:DatePicker的长度不够长。
为什么它的长度不够长,又不可以作妖去设置width:180%…
看了一下:
因为DatePicker是inline-flex,所以它默认宽度其实就是由自身内容宽度决定的
所以DatePicker没有因为它的父级元素是多大,自身宽度就是其100%。
Space设置间距
Space可以设置间距,如:
注意那一句:
可以设置 width:100% 独占一行
<Row>
<Col span=4>col-8</Col>
<Col span=16>
<Space direction="vertical" style= width: '100%' >
<DatePicker format="YYYY-MM-DD" style= width: '100%' />
</Space>
</Col>
<Col span=4>col-8</Col>
</Row>
自此,这个样式上的bug就解决了。
总结
- Grid栈格可以用于设置自适应居中布局
- Space可以帮助设置宽度间距
- DatePicker是inline-flex,默认宽度为自身内容宽度。但要避免改变其display属性,可以通过Space设置width来改变其宽度。
以上是关于React & Ant-Design 应用 —— 自适应居中组件(Grid栈格设置布局Space间距设置)的主要内容,如果未能解决你的问题,请参考以下文章
React & Ant-Design 应用 —— 自适应居中组件(Grid栈格设置布局Space间距设置)
React & Ant-Design 应用 —— 自适应居中组件(Grid栈格设置布局Space间距设置)
React & Ant-Design 应用 —— Form.item 的 name和rules;为什么设置required不显示
React & Ant-Design 应用 —— Form.item 的 name和rules;为什么设置required不显示