创建相对于容器 div 的 DaisyUI 抽屉

问题描述 投票:0回答:1

我有一个简单的应用程序,其主体宽 500 像素并居中。 我正在尝试使用 daisyUI 抽屉,以便抽屉在主体右侧进入屏幕。 但是,抽屉从视口的远端打开,而不是紧邻屏幕。 我尝试了多种方法,但没有一个有效。 下面是代码。

<body>
    <h2>My App</h2>
    <div class="drawer drawer-end">
        <input id="my-drawer-4" type="checkbox" class="drawer-toggle" />
        <div class="drawer-content">
            <!-- Page content here -->
            <label for="my-drawer-4" class="drawer-button btn btn-primary"
                >Open drawer</label
            >
        </div>
        <div class="drawer-side">
            <label for="my-drawer-4" aria-label="close sidebar" class="drawer-overlay"
            ></label>
            <ul class="menu bg-base-200 text-base-content min-h-full w-80 p-4">
                <!-- Sidebar content here -->
                <li><a>Sidebar Item 1</a></li>
                <li><a>Sidebar Item 2</a></li>
            </ul>
        </div>
    </div>
</body>
:global(body) {
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    font-family:  sans-serif;
}
tailwind-css drawer daisyui
1个回答
0
投票

我能够通过利用 CSS 变量获得您正在寻找的结果。在您的 Tailwind CSS 文件中,添加以下内容:

@tailwind base;
@tailwind components;
@tailwind utilities;

/* You can change the default behavior of the scroll bar
 * appearing/disappearing by changing `scrollbar-gutter` 
 * to "unset" or "stable".
 */
html:has(.drawer-toggle:checked) {
  overflow-y: hidden;
  scrollbar-gutter: unset;
}

body {
  --max-width: 500px;
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  font-family: sans-serif;
}

.drawer-side {
  max-width: var(--max-width);
  left: 50%;
  transform: translateX(-50%);
}

我尝试通过另一种方式解决这个问题,将侧抽屉更改为

position: absolute
,以便它可以相对于父元素定位,但我认为这不是一个好的解决方案,因为嵌套抽屉时它可能会破裂。

这是一个工作示例

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.