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不显示

react初探索--react + react-router + ant-design 后台管理系统配置

无法让 @ant-design/pro-layout 的样式与“create-react-app”一起使用