代码之家  ›  专栏  ›  技术社区  ›  Vojtěch Dohnal

如何在父元素(div)中水平地将元素(卡)堆叠在一行中

  •  0
  • Vojtěch Dohnal  · 技术社区  · 8 年前

    我有一个非常相似的问题 to this one .

    我已经从 https://material-ui.com/demos/cards/ . 链接 to the sandbox editor is here .

    基本上,我需要在父div中水平地将材质UI卡堆叠在一行中,当它们不适合时,它们会在前面的行下面创建另一行。

    所以当我写的时候:

    render(
        <div className="row">
          <Demo /> <Demo />
        </div>,
        rootElement
      );
    

    我希望这两张牌能同时得到。

    我添加了以下样式 display: "inline-block" ,但卡片仍然垂直堆叠:

    const styles = {
      card: {
        minWidth: 275,
        display: "inline-block"
      }
    };
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   cdoshi    8 年前

    需要做一些改变

    1) 首先父div也需要是inline块。这是为了确保div可以并排对齐

    2) 将空白设置为nowrap以确保元素不会换行。仅仅因为div是内联块并不意味着它们会并排对齐。如果内联div超过宽度,它将被包装到下一行。你需要设置空白参数来阻止它

    https://codesandbox.io/s/9y51rxjmxy

        2
  •  0
  •   davbuc    8 年前

    不如加上:

    const styles = {
      card: {
        minWidth: 275,
        float: "left",
        marginRight: 10 // or sth.
      }
    };
    

    问题是,将其内容包装在div中,默认情况下该div是display:block;-这就是为什么display:inline block在演示组件上不起作用的原因。