小编M-N*_*M-N的帖子

SVG子元素破坏了HTML网格布局

我正在尝试制作一个具有简单3x3网格布局的页面:页眉顶部,页脚底部,两个侧边栏和主显示。一切正常,直到我添加应填充主显示div的SVG元素:

<div class="main">
  <svg viewBox="0 0 500 500"></svg>
</div>
Run Code Online (Sandbox Code Playgroud)

此时,整个网格布局变得混乱,浏览器删除了标题,将页面扩展到了height: 100%我声明的页面之下,等等。

我可以很容易地“固定”这通过设定我的SVG max-heightmax-width任意小(低于〜60%在Firefox 62.0.3;在Safari 12.0,<90%)。但这并不是真正的解决方法,因为它留下了明显的差距(在Firefox中是一个巨大的差距)。我更喜欢调整SVG的大小100%以填充网格中的空间。我肯定错过了什么。我究竟做错了什么?

编辑:添加我想要的(我的一个版本)的屏幕快照。

就是我所拥有的。就是我想要的。

您所看到的样式表如下。唯一的两个图像之间的区别是在变化max-widthmax-height10%100%

<div class="main">
  <svg viewBox="0 0 500 500"></svg>
</div>
Run Code Online (Sandbox Code Playgroud)
    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      display: grid;
      border-style: solid; // to show that body renders improperly
      border-color: red;
      grid-template-columns: 3fr 9fr 2fr;
      grid-template-rows: 1fr 10fr 1fr;
      width: 100vw; …
Run Code Online (Sandbox Code Playgroud)

html css svg grid-layout

5
推荐指数
1
解决办法
1333
查看次数

在打字稿中实现任一 Monad

我最近一直在试验 TypeScript,我正在尝试实现一些基本的 monad。我已经有了一个功能合理的 Maybe(至少使用与下面的任何一种方法相同的方法),但是由于与类型相关的原因,我不太明白任何一种。

我的更高级类型的打字策略是从这篇文章中借用的:https ://medium.com/@gcanti/higher-kinded-types-in-typescript-static-and-fantasy-land-d41c361d0dbe 。我知道有些库已经拥有所有这些 monad 和其他 FP 好东西,但是像这样实现它们是我尝试更深入地学习 TypeScript 的方式。

declare module './HKT' {
  interface TypeIDtoHKT2<E, A> {
    Either: Either<E, A>;
  }
}

export const TypeID = 'Either';
export type TypeID = typeof TypeID;

export class Left<E> {
  readonly _F!: TypeID;
  readonly _A!: E;
  readonly _tag: 'Left' = 'Left';
  constructor(readonly left: E) {}
  static of<E, A>(e: E): Either<E, A> {
    return new Left(e);
  }
  map<A, B>(f: (a: A) => B): Either<E, B> {
    return this;
  } …
Run Code Online (Sandbox Code Playgroud)

functional-programming either typescript

5
推荐指数
1
解决办法
2296
查看次数

d3 将 csv 文件导入数组

我正在尝试使用 d3.csv() 方法导入 .csv 文件。这是我的代码:

d3.csv("data.csv", function(data) {
  console.log(data);
})
Run Code Online (Sandbox Code Playgroud)

我认为我会得到一个包含对象的数组,每个对象代表 .csv 文件的一行(其中有 50 个)。但我实际上得到的是一系列独立的对象。也就是说,该函数已将 50 个对象记录到我的控制台,而不是一个包含 50 个对象的数组。我是否误解了这个方法?如果是这样,我怎样才能得到这样的数组?

d3.js

3
推荐指数
1
解决办法
2126
查看次数

如何在Elm中创建Maybe记录而不是Maybes的记录

这可能是一件简单的事情,但我正在编写一个我想要返回记录的函数,并且其中几个字段需要做一些可能会失败的事情,所以现在结果记录看起来像这样(假设它的类型别名为MyRecord)。

{ field1 : Maybe a
, field2 : Maybe a
, field3 : Maybe a
}
Run Code Online (Sandbox Code Playgroud)

然而,这并不能准确地代表所发生事情的“真实”含义。该函数的基本目标是验证和重新格式化一些数据。所以我想说,如果我有一个MyRecord,我有三个字段值得a's。如果我没有这些字段,我想知道我没有MyRecord. 从逻辑上讲,我想返回一个Maybe MyRecord,但对于我的一生,这是逃避我的新手到榆树的能力。

目前,我正在一次创建记录,但由于明显的原因,这不起作用:

{ field1 = maybeProducingFunction1
, field2 = maybeProducingFunction2
, field3 = maybeProducingFunction3
}
Run Code Online (Sandbox Code Playgroud)

如何创建此记录,以便如果这些函数中的任何一个产生Nothing,则整个记录是Nothing

record elm

2
推荐指数
1
解决办法
91
查看次数