使用 TailwindCSS 时,如何避免模板在渲染列表时将分隔符添加到分隔符?

Posted

技术标签:

【中文标题】使用 TailwindCSS 时,如何避免模板在渲染列表时将分隔符添加到分隔符?【英文标题】:When using TailwindCSS, how do I avoid the template from adding a divider to divide-y when rendering a list? 【发布时间】:2021-10-23 23:43:41 【问题描述】:

Divide-y 用于在堆叠元素之间添加分隔符。然而,当使用 AlpineJS (x-for) 和 TailwindCSS 渲染列表时,我们发现模板标签导致 CSS 也在那里添加了一个分隔符,这是一个不受欢迎的效果。

是否有 Tailwind 方法可以防止这种情况发生?

例如

<ul role="list" class="divide-y divide-gray-200" x-data="taskModel()">
    <template x-for="task in taskList">
        <li class="py-4 flex">
            <img class="h-10 w-10 rounded-full" src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" >
            <div class="ml-3">
                <p class="text-sm font-medium text-gray-900" x-text="task.name"></p>
                <p class="text-sm text-gray-500" x-text="task.email"></p>
                <p class="text-sm text-gray-500" x-text="task.due"></p>
            </div>
        </li>
    </template>
</ul>

<script>
    function taskModel() 
        return 
            taskList: [
                
                    name: 'Calvin Hawkins',
                    email: 'calvin.hawkins@example.com',
                    due: '2021-08-28'
                
            ]
        ;
    
</script>

谢谢!

【问题讨论】:

【参考方案1】:

这是一个漂亮的well documented 并解决了问题。如文档https://tailwindcss.com/docs/upgrading-to-v2#add-hidden-to-any-template-tags-within-space-or-divide-elements 中所述,您只需将hidden 属性添加到您的模板标签即可。

在你的情况下,代码应该是:

<ul role="list" class="divide-y divide-gray-200" x-data="taskModel()">
    <!-- Add hidden attribute -->
    <template x-for="task in taskList" hidden>
        <li class="py-4 flex">
            <img class="h-10 w-10 rounded-full" src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" >
            <div class="ml-3">
                <p class="text-sm font-medium text-gray-900" x-text="task.name"></p>
                <p class="text-sm text-gray-500" x-text="task.email"></p>
                <p class="text-sm text-gray-500" x-text="task.due"></p>
            </div>
        </li>
    </template>
</ul>

<script>
    function taskModel() 
        return 
            taskList: [
                
                    name: 'Calvin Hawkins',
                    email: 'calvin.hawkins@example.com',
                    due: '2021-08-28'
                
            ]
        ;
    
</script>

【讨论】:

以上是关于使用 TailwindCSS 时,如何避免模板在渲染列表时将分隔符添加到分隔符?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 vuejs 和 tailwindcss 配置电子

调用此模板时如何避免使用 decltype?

在进行添加时如何通过使用 c++ 模板来避免临时对象? [关闭]

使用依赖于存储桶名称的模板设置 S3 存储桶策略时如何避免循环错误?

使用 TailwindCSS 单击按钮时,使侧边栏从左侧滑入

使用 Vuejs、Webpack 和 tailwindcss 创建一个 Electron 应用程序