如何修复框阴影过渡不适用于悬停?

Posted

技术标签:

【中文标题】如何修复框阴影过渡不适用于悬停?【英文标题】:How to fix box-shadow transition is not working on hover? 【发布时间】:2021-11-05 20:38:52 【问题描述】:

我有box-shadow<li> 标签,但我的transition 悬停不工作。

我的代码:

<li class="shadow-outer hover:shadow-inner transition-all duration-1000 ease-in-out cursor-pointer rounded-full w-full px-6 py-2 flex flex-row justify-between">
     <span>home</span>
     <span>i</span>
</li>

顺风配置:

module.exports = 
    ...
    theme: 
        boxShadow: 
            inner: 'inset 3px 3px 3px #cdcdcd, inset -3px -3px 3px #fafafa',
            outer: '3px 3px 3px #cdcdcd, -3px -3px 3px #fafafa',
        ,
    ,
    variants: 
        extend: 
            boxShadow: ['hover'],
            transitionProperty: ['hover'],
            transitionDuration: ['hover'],
            transitionTimingFunction: ['hover'],
        ,
    ,
    ...

【问题讨论】:

【参考方案1】:

问题不在于顺风,而在于 css。

Box Shadow inset 无法过渡到 non-inset。一般来说,动画和过渡只适用于数值。因此,要获得过渡,您需要像这样设置 0px 值:

boxShadow: 
    inner:
      'inset 3px 3px 3px #cdcdcd, inset -3px -3px 3px #fafafa, 0px 0px 0px #cdcdcd, 0px 0px 0px #fafafa',
    outer:
      'inset 0px 0px 0px #cdcdcd, inset 0px 0px 0px #fafafa, 3px 3px 3px #cdcdcd, -3px -3px 3px #fafafa',
  ,

See working example here

【讨论】:

以上是关于如何修复框阴影过渡不适用于悬停?的主要内容,如果未能解决你的问题,请参考以下文章

CSS:图像悬停过渡不适用于显示无/显示:块和图像交换

为啥过渡框阴影会导致整页重绘?

CSS过渡不适用于悬停

如何使用支持库 23 修复缩放的 FloatingActionButton 上的阴影

自定义缩放过渡不适用于模态演示

CSS CSS3 Chrome圆角框阴影插入修复