顺风中心绝对元素

Posted

技术标签:

【中文标题】顺风中心绝对元素【英文标题】:Tailwind center an absolute element 【发布时间】:2021-01-21 18:52:26 【问题描述】:

我想在客户端按下登录按钮时在页面中间创建一个小的登录弹出卡。我设法自己创建了卡片,并将其 .absolute z-10 放在其他内容的顶部。我还用.relative 将它包裹在一个容器 div 中,以便能够定位卡片。我的问题是我不能把它放在中间。如果我添加例如.right-0 它可以工作,但我想将它放在中间,我在文档中找不到任何关于它的内容......另外,我怎样才能为我的卡增加 64 的高度?

我的代码:

index.html

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Jófogás</title>
    <link
      href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css"
      rel="stylesheet"
    />
    <link
      rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
    />
  </head>
  <body>
    <!-- header section -->
    <header class="bg-white flex">
      <div class="w-3/6">
        <img
          class="h-12 m-4"
          src="./logo_img/jofogas_logo_original.jpg"
          
        />
      </div>
      <div class="mx-6 my-6 w-3/6 text-right">
        <button class="bg-orange-500 rounded py-2 px-4 text-white">
          Belépés
        </button>
      </div>
    </header>
    <!-- login card -->
    <div class="relative">
      <div class="absolute z-10 items-center right-0">
        <div
          id="login-card"
          class="w-56 h-64 text-center bg-orange-500 rounded-lg"
        ></div>
      </div>
    </div>
    <!-- search bar -->
    <div class="bg-gray-200 rounded-lg mx-10 md:pt-10" id="search-container">
      <div class="text-center text-4xl hidden md:block" id="main-text">
        Hirdess vagy vásárolj a Jófogáson!
      </div>
      <div class="py-10 text-center">
        <input
          class="w-5/6 md:w-3/6 md:h-12"
          id="search-bar"
          type="text"
          placeholder="Mit keresel?"
        />
        <i class="fa fa-search icon"></i>
      </div>
    </div>
    <div class="text-center">
      <button
        class="bg-green-500 rounded py-4 px-8 md:py-8 md:px-16 text-white text-xl md:text-2xl my-10"
      >
        Hirdetésfeladás
      </button>
    </div>
  </body>
</html>

【问题讨论】:

【参考方案1】:

您可以将 flexbox 与 items-center 和 justify-center 一起使用,以完美地适应屏幕中心。为此,您需要将高度和宽度设置为 100% 以相对于整个屏幕居中。检查是否可行:

<!-- login card -->
  <div class="fixed h-full w-full flex items-center justify-center bg-opacity-50 bg-gray-700">
    <div class="z-10">
      <div id="login-card"
        class="w-56 h-64 text-center bg-orange-500 rounded-lg"
      ></div>
    </div>
  </div>

查看示例输出here。

【讨论】:

【参考方案2】:

试试这个:

<div class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2">
    ...
</div>

【讨论】:

这正是我试图让它工作的方式,但在 Tailwind 3.0 中,它似乎并没有使用负转换标签转换回来。我也得到了一个偏心的盒子。 ??‍♂️

以上是关于顺风中心绝对元素的主要内容,如果未能解决你的问题,请参考以下文章

css 中心绝对元素

css 中心绝对定位元素

另一个中的中心元素,而父指定位置:绝对?

如何在其父 div 的中心对齐绝对位置子元素 [重复]

如何在顺风中以自定义高度居中网格行中的元素?

使用变换转换的中心元素(具有 50px 边距)