【问题标题】:Tailwind Flex Box Responsive Grid with Cards issue带有卡片问题的 Tailwind Flex Box 响应式网格
【发布时间】:2019-10-07 03:06:04
【问题描述】:

这是我开始的地方

预览

代码:

<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: []
};

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


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

<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>

【问题讨论】:

    标签: javascript html css reactjs tailwind-css


    【解决方案1】:

    之所以会这样,是因为有额外的边距,w-1/3 表示 ~ width: 33.3333% 如果您在其顶部添加边距,则三个不能放在一行中。

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

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

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

    • 除非您在配置中使用旧的调色板,否则grey-darker 将不起作用。
    • img 在 v1 中默认为 block
    • invisiblelg:visible 更改 visibility,标题会占用空间,如果这不是你想要的,它应该是 hiddenlg:flex

    【讨论】:

    • 嘿,感谢您的回答,我尝试使用您的结构,但仍然遇到同样的问题....这是屏幕截图imgur.com/fa92MIp - 在上面添加了更新的代码
    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2021-05-16
    • 2020-03-22
    • 2021-03-18
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多