0

这是我开始的地方

预习

在此处输入图像描述

代码 :

<div class="container my-12 mx-auto">
            <div className="flex flex-wrap ">
              {error ? <p>{error.message}</p> : null}
              {!isLoading ? (
                users.map(user => {
                  const { username, name, email } = user;
                  return (
                    <div
                      key={username}
                      className="w-full md:w-1/2 lg:w-1/3  my-5"
                    >
                      <article class="overflow-hidden rounded-lg shadow-lg">
                        <img
                          alt="Placeholder"
                          className="block h-auto w-full"
                          src="https://picsum.photos/600/400/?random"
                        />
                        <header class="flex items-center justify-between leading-tight p-2 bg-white invisible lg:visible">
                          <h1 class="text-lg">{name}</h1>
                          <p class="text-grey-darker text-sm">
                            {email}
                          </p>
                        </header>
                      </article>
                    </div>

然后我试着让它更间隔开,就像这里的 codepen 示例所示: https ://codepen.io/codetimeio/pen/RYMEJe

但是每次我尝试添加一些填充和边距时,它都会转义到下一行,我无法弄清楚它为什么会这样做或如何阻止它

在此处输入图像描述

这是我更新的行:

<div key={username} className="w-full md:w-1/2 lg:w-1/3  my-5 mx-5">

这是我的顺风配置文件

module.exports = {
  theme: {
    container: {
      center: true
    },
    screens: {
      sm: "640px",
      md: "768px",
      lg: "1024px",
      xl: "1280px"
    },
    fontFamily: {
      display: ["Gilroy", "sans-serif"],
      body: ["Graphik", "sans-serif"]
    },
    extend: {}
  },
  variants: {},
  plugins: []
};

我真的很想了解我做错了什么,以便我可以使用顺风作为我的主要模板框架


这是根据下面给出的答案更新的代码

<div class="container my-12 mx-auto bg-gray-400">
            <div className="flex flex-wrap ">
              {error ? <p>{error.message}</p> : null}
              {!isLoading ? (
                users.map(user => {
                  const { username, name, email } = user;
                  return (
                    <div key={username} className="w-full p-5 md:w-1/2 lg:w-1/3">
                      <article className="overflow-hidden rounded-lg shadow-lg">
                        <img alt="Placeholder" className="w-full" src="https://picsum.photos/600/400/?random" />
                        <header className="flex items-center justify-between leading-tight p-2 bg-white">
                          <h1 className="text-lg">{name}</h1>
                          <p className="text-grey-darker text-sm">
                            {email}
                          </p>
                        </header>
                      </article>
                    </div>
4

1 回答 1

3

这是因为额外的边距而发生的,w-1/3意味着〜width: 33.3333%如果你在它上面添加一个边距,三个不能放在一行中。

有其他方法(考虑到 gutter 或gap 属性的宽度),但在这种情况下,您可以只使用填充而不是边距,因为您的卡片周围已经有一个展示包装元素。

示例:https ://codepen.io/tlgreg/pen/RmLMOx

不相关,但查看您的代码的注释很少:

  • 除非您在配置中使用旧的调色板,grey-darker否则将无法使用。
  • img默认情况block下在 v1 中。
  • invisiblelg:visible变化visibility,标题会占用空间,如果那不是你想要的,它应该是hiddenand lg:flex
于 2019-05-21T00:53:17.027 回答