4

在我的应用程序中,我有一个模型。我在模型上使用不透明度。我现在遇到的问题是模型的主体不应该有不透明性,我该如何解决这个问题?只有在模型之外才应该有不透明度!

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <link href="https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css" rel="stylesheet">
</head>
<body>
  <div class="flex flex-col bg-red min-h-screen">
    <div class="fixed w-full h-full bg-blue opacity-50 flex items-center justify-center flex-col">
    <div class="bg-black p-16">
      <p class="text-white">Model body</p>
    </div>  
  </div>
  </div>
</body>
</html>

4

4 回答 4

5

我知道已经快三年了,我不确定这是否是你想要的。但是使用bg-opacity-{n}而不是opacity-{n}为我做了诀窍。

我想显示一个带有黑色背景的叠加元素,但叠加元素本身应该具有 100% 的不透明度。

示例代码:

<div className="p-20 border-4 border-black fixed top-0 left-0 bottom-0 right-0 w-full h-screen bg-black bg-opacity-75">
    <div className="bg-white bg-opacity-100">
        Sample Text
    </div>
</div>

发布这个以防其他人需要这样的解决方案。

TL;DR -bg-opacity-75在 parentdivbg-opacity-100child 中使用div。由于某种原因,使用opacity-75andopacity-100不起作用。

于 2021-08-08T08:14:18.940 回答
1

您可以添加.opacity-100到嵌套的 div。

查看有关不透明度的官方 Tailwind 文档以获取更多详细信息。

于 2018-09-15T16:26:25.963 回答
0

您需要使用relative/absoluteopacityz-index

这是一个jsfiddle 工作示例

new Vue({
  el: "#app",
  data: function () {
     return {
        modalOpen: false
     }
  }
})
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>


<div id="app" class="relative">
  <div class="h-screen w-full p-4">
    <span class="rounded p-2 bg-gray-200 cursor-pointer" @click="modalOpen = true;">
      Open Modal
    </span>
  </div>

  <div v-if="modalOpen" class="absolute bg-black opacity-25 inset-0 z-10" @click="modalOpen = false;"></div>

  <div class="absolute inset-0 flex justify-center items-center" v-if="modalOpen">
    <div class="bg-white p-8 z-20">
      Modal
    </div>
  </div>

</div>

于 2020-05-26T03:53:09.573 回答
0

分配bg-opacity-40给外部 div 为我解决了

于 2021-03-30T08:46:19.657 回答