【问题标题】:CSS transition Not Working on box-shadow PropertyCSS 过渡不适用于 box-shadow 属性
【发布时间】:2014-10-14 03:14:24
【问题描述】:

我有一个输入文本字段,当用户关注它时,我希望 box-shadow 属性从一种样式转换为另一种样式。我的两个 CSS 声明有什么问题导致过渡不发生?

input[type="text"], textarea { box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.3) inset; transition: box-shadow 0.33s ease-in-out; }
input[type="text"]:focus, textarea:focus { box-shadow: 0 0 7px 0 rgba(30, 144, 255, 1); }

【问题讨论】:

  • 当你专注和不专注时会发生什么吗?
  • 不,过渡没有任何反应。当然,box-shadow 会改变,但它会立即改变,没有过渡。

标签: focus transition css


【解决方案1】:

您似乎无法从插入框阴影过渡到普通框阴影,反之亦然。这是一个很好的答案CSS box-shadow transition。并应用于您的代码:

input[type="text"], textarea { box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.3) inset, 0px 0px 0px white; transition: box-shadow 0.33s ease-in-out; }
input[type="text"]:focus, textarea:focus { box-shadow: 0px 0px 0px white inset, 0 0 7px 0 rgba(30, 144, 255, 1); }

我在 Chrome 中进行了测试,它运行良好。

编辑:

为了进一步解释,基本上你正在为 :focus 类的插入框阴影创建一个空/空白样式(0px 0px 0px 白色),并为非 :focus 类创建一个空的外框阴影样式。这样,插入阴影从样式转换为非样式,外部阴影从非样式转换为样式。希望这能澄清一点。

【讨论】:

  • 效果很好,解释也加分。我所做的唯一更改是使用“rgba(0, 0, 0, 0)”而不是颜色“白色”,它是黑色但不透明度为零,这样,它是透明的,我不必担心关于匹配页面的背景颜色。
猜你喜欢
  • 2022-08-19
  • 2019-01-30
  • 2021-10-23
  • 2021-08-07
  • 2020-04-30
  • 1970-01-01
  • 2014-09-14
  • 2020-09-23
  • 1970-01-01
相关资源
最近更新 更多