问答

使用react-grid-layout时margin配置后元素高度异常

作者:admin 2021-06-22 我要评论

module: react-grid-layout version: ^0.18.3 import {WidthProvider, Responsive} from 'react-grid-layout'; const ResponsiveReactGridLayout = WidthProvide...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

module: react-grid-layout
version: ^0.18.3

import {WidthProvider, Responsive} from 'react-grid-layout';
const ResponsiveReactGridLayout = WidthProvider (Responsive);
// 属性配置
const GridProps = {
  cols: {lg: 12, md: 10, sm: 6, xs: 4, xxs: 2},
  rowHeight: 10,
  margin: [10, 10],
  containerPadding: [10, 10],
  totalColumn: 12,
};
<ResponsiveReactGridLayout
    className="layout"
    {...GridProps}
    onLayoutChange={(layout, layouts) =>
      this.onLayoutChange (layout, layouts)}
    >
    {this.generateDOM ()}
</ResponsiveReactGridLayout>

margin: [10, 10], 导致ResponsiveReactGridLayout内部每一个元素的高度都变的更高了, 不知道原因, 有没有大神用过.

###

路人甲做个答。这个问题,以前用的时候也十分纠结过。

其实 react-grid-layout 在计算宽高的时候是会把 margin 一同算进去的,至于为什么这么设计我也费解,以下为源码(链接):

image.png

比如当前 margin=[10, 10]rowHeight=30h=2,实际的高度为:

Math.round(30 * 2 + Math.max(0, 2 - 1) * 10)
// 等于 70

大致是这样的逻辑。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 使用react-grid-layout时margin配置后

    使用react-grid-layout时margin配置后

  • 不同方法中的synchronized的锁之间会有

    不同方法中的synchronized的锁之间会有

  • centos在下载的时候,为什么有这么多版

    centos在下载的时候,为什么有这么多版

  • 改变了查询条件,视图没跟着更新

    改变了查询条件,视图没跟着更新

腾讯云代理商
海外云服务器