AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 79487838
Accepted
GʀᴜᴍᴘʏCᴀᴛ
GʀᴜᴍᴘʏCᴀᴛ
Asked: 2025-03-06 06:38:04 +0800 CST2025-03-06 06:38:04 +0800 CST 2025-03-06 06:38:04 +0800 CST

我在 Tailwind 时间线上做错了什么,导致我的偶数项没有正确显示在线上?

  • 772

在 Tailwind CSS 版本 3.4.1 中尝试构建时间线,我想知道当我的辅助图标无法正确显示在线上时,我做错了什么。

代码:

import { ClipboardCheck, MessageSquare, Wrench, Car } from "lucide-react";

export default function TimelineExperiement() {
  const timeline = [
    {
      icon: <MessageSquare className="h-10 w-10 text-red-600" />,
      title: "Monday",
      description:
        "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
    },
    {
      icon: <ClipboardCheck className="h-10 w-10 text-red-600" />,
      title: "Tuesday",
      description:
        "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
    },
    {
      icon: <Wrench className="h-10 w-10 text-red-600" />,
      title: "Wednesday",
      description:
        "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
    },
    {
      icon: <Car className="h-10 w-10 text-red-600" />,
      title: "Thursday",
      description:
        "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
    },
  ];

  return (
    <section id="process" className="py-16 bg-gray-50">
      <div className="container mx-auto px-4">
        <div className="text-center mb-12">
          <h2 className="text-3xl font-bold text-gray-800 mb-4">Timeline</h2>
          <p className="text-gray-600 max-w-2xl mx-auto">
            Landjaeger alcatra shankle, buffalo cupim kielbasa short ribs
            burgdoggen.
          </p>
        </div>

        <div className="relative">
          <div className="hidden md:block absolute left-1/2 top-0 bottom-0 w-1 bg-red-200 transform -translate-x-1/2" />
          <div className="space-y-12 relative">
            {timeline.map((tl, index) => (
              <div
                key={index}
                className="flex flex-col md:flex-row items-center"
              >
                <div
                  className={`md:w-1/2 ${
                    index % 2 === 0
                      ? "md:pr-12 md:text-right"
                      : "md:order-2 md:pl-12 "
                  }`}
                >
                  <h3 className="text-xl font-bold text-gray-800 mb-2">
                    {tl.title}
                  </h3>
                  <p className="text-gray-600">{tl.description}</p>
                </div>

                <div
                  className={`my-4 md:my-0 z-10 bg-white rounded-full p-4 shadow-md`}
                >
                  {tl.icon}
                </div>

                <div
                  className={`md:w-1/2 ${
                    index % 2 === 0 ? "md:order-2" : "md:text-right"
                  }`}
                />
              </div>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

我怎样才能让偶数项上的图标超出实线?

tailwind-css
  • 2 2 个回答
  • 37 Views

2 个回答

  • Voted
  1. rozsazoltan
    2025-03-06T15:52:20+08:002025-03-06T15:52:20+08:00

    说明问题

    const { useState, useEffect } = React;
    
    function TimelineExperiement() {
      const timeline = [
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Monday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Tuesday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Wednesday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Thursday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
      ];
    
      return (
        <section id="process" className="py-16 bg-gray-50">
          <div className="container mx-auto px-4">
            <div className="text-center mb-12">
              <h2 className="text-3xl font-bold text-gray-800 mb-4">Timeline</h2>
              <p className="text-gray-600 max-w-2xl mx-auto">
                Landjaeger alcatra shankle, buffalo cupim kielbasa short ribs
                burgdoggen.
              </p>
            </div>
    
            <div className="relative">
              <div className="hidden md:block absolute left-1/2 top-0 bottom-0 w-1 bg-red-200 transform -translate-x-1/2" />
              <div className="space-y-12 relative">
                {timeline.map((tl, index) => (
                  <div
                    key={index}
                    className="flex flex-col md:flex-row items-center"
                  >
                    <div
                      className={`md:w-1/2 ${
                        index % 2 === 0
                          ? "md:pr-12 md:text-right"
                          : "md:order-2 md:pl-12 "
                      }`}
                    >
                      <h3 className="text-xl font-bold text-gray-800 mb-2">
                        {tl.title}
                      </h3>
                      <p className="text-gray-600">{tl.description}</p>
                    </div>
    
                    <div
                      className={`my-4 md:my-0 z-10 bg-white rounded-full p-4 shadow-md`}
                    >
                      {tl.icon}
                    </div>
    
                    <div
                      className={`md:w-1/2 ${
                        index % 2 === 0 ? "md:order-2" : "md:text-right"
                      }`}
                    />
                  </div>
                ))}
              </div>
            </div>
          </div>
        </section>
      );
    }
    
    ReactDOM.createRoot(document.getElementById("root")).render(<TimelineExperiement />);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.production.min.js"></script>
    <script src="https://cdn.tailwindcss.com"></script>
    
    <div id="root"></div>

    解决方案

    实际上,您有 3 个子元素。等式中出现问题是因为您错误地将文本放在了 上order-2。

    始终将图标放在 上order-2。将空 div 和文本 div 正确放在order-1或 上order-3。

    const { useState, useEffect } = React;
    
    function TimelineExperiement() {
      const timeline = [
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Monday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Tuesday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Wednesday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Thursday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
      ];
    
      return (
        <section id="process" className="py-16 bg-gray-50">
          <div className="container mx-auto px-4">
            <div className="text-center mb-12">
              <h2 className="text-3xl font-bold text-gray-800 mb-4">Timeline</h2>
              <p className="text-gray-600 max-w-2xl mx-auto">
                Landjaeger alcatra shankle, buffalo cupim kielbasa short ribs
                burgdoggen.
              </p>
            </div>
    
            <div className="relative">
              <div className="hidden md:block absolute left-1/2 top-0 bottom-0 w-1 bg-red-200 transform -translate-x-1/2" />
              <div className="space-y-12 relative">
                {timeline.map((tl, index) => (
                  <div
                    key={index}
                    className="flex flex-col md:flex-row items-center"
                  >
                    {/* TEXT - 1. order-1; 2. order-3 */}
                    <div
                      className={`md:w-1/2 ${
                        index % 2 === 0
                          ? "md:pr-12 md:text-right"
                          : "md:order-3 md:pl-12 "
                      }`}
                    >
                      <h3 className="text-xl font-bold text-gray-800 mb-2">
                        {tl.title}
                      </h3>
                      <p className="text-gray-600">{tl.description}</p>
                    </div>
    
                    {/* ICON - order 2 */}
                    <div
                      className={`my-4 md:my-0 z-10 bg-white rounded-full p-4 shadow-md md:order-2`}
                    >
                      {tl.icon}
                    </div>
    
                    {/* EMPTY - 1. order-3; 2. order-1 */}
                    <div
                      className={`md:w-1/2 ${
                        index % 2 === 0 ? "md:order-3" : "md:order-1 md:text-right"
                      }`}
                    />
                  </div>
                ))}
              </div>
            </div>
          </div>
        </section>
      );
    }
    
    ReactDOM.createRoot(document.getElementById("root")).render(<TimelineExperiement />);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.production.min.js"></script>
    <script src="https://cdn.tailwindcss.com"></script>
    
    <div id="root"></div>

    • 0
  2. Best Answer
    rozsazoltan
    2025-03-06T17:36:45+08:002025-03-06T17:36:45+08:00

    作为替代解决方案,交换md:flex-row和md:flex-row-reverse类别可能比调整顺序更完美。

    • Flex 方向- TailwindCSS v3 文档

    const { useState, useEffect } = React;
    
    function TimelineExperiement() {
      const timeline = [
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Monday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Tuesday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Wednesday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
        {
          icon: <div className="h-10 w-10 text-red-600" />,
          title: "Thursday",
          description:
            "Bacon ipsum dolor amet shankle bresaola venison corned beef frankfurter short ribs pastrami pancetta porchetta tri-tip sausage fatback pork loin rump.",
        },
      ];
    
      return (
        <section id="process" className="py-16 bg-gray-50">
          <div className="container mx-auto px-4">
            <div className="text-center mb-12">
              <h2 className="text-3xl font-bold text-gray-800 mb-4">Timeline</h2>
              <p className="text-gray-600 max-w-2xl mx-auto">
                Landjaeger alcatra shankle, buffalo cupim kielbasa short ribs
                burgdoggen.
              </p>
            </div>
    
            <div className="relative">
              <div className="hidden md:block absolute left-1/2 top-0 bottom-0 w-1 bg-red-200 transform -translate-x-1/2" />
              <div className="space-y-12 relative">
                {timeline.map((tl, index) => (
                  <div
                    key={index}
                    className={`flex flex-col items-center ${
                        /* HERE */
                        index % 2 === 0
                          ? "md:flex-row"
                          : "md:flex-row-reverse"
                      }`}
                  >
                    {/* TEXT */}
                    <div
                      className={`md:w-1/2 ${
                        index % 2 === 0
                          ? "md:pr-12 md:text-right"
                          : "md:pl-12"
                      }`}
                    >
                      <h3 className="text-xl font-bold text-gray-800 mb-2">
                        {tl.title}
                      </h3>
                      <p className="text-gray-600">{tl.description}</p>
                    </div>
    
                    {/* ICON */}
                    <div
                      className={`my-4 md:my-0 z-10 bg-white rounded-full p-4 shadow-md`}
                    >
                      {tl.icon}
                    </div>
    
                    {/* EMPTY */}
                    <div
                      className={`md:w-1/2 ${
                        index % 2 === 0 ? "" : "md:text-right"
                      }`}
                    />
                  </div>
                ))}
              </div>
            </div>
          </div>
        </section>
      );
    }
    
    ReactDOM.createRoot(document.getElementById("root")).render(<TimelineExperiement />);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.3.1/umd/react.production.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.3.1/umd/react-dom.production.min.js"></script>
    <script src="https://cdn.tailwindcss.com"></script>
    
    <div id="root"></div>

    • 0

相关问题

  • 如何使用网格在顺风响应视图中使 2 个 div 彼此相邻

  • 如何在 Tailwind css 中发布主题中的所有自定义类?

  • TailwindCSS:单选按钮边框看起来很奇怪

  • 如何通过悬停事件访问 tailwindcss 中 div 的所有子级?

  • 如何在顺风中放置不完整的垂直分隔线

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve