Tailwind CSS输入框透明渐变背景失效问题求助
解决Tailwind CSS输入框渐变背景不生效的问题
问题原因
浏览器表单元素(如input)默认带有原生背景样式,会覆盖手动设置的渐变背景,导致渐变无法正常显示。
方法一:清除input默认背景并设置渐变
给input添加bg-transparent清除默认背景色,再配合渐变类即可让渐变生效。修改后的代码如下:
<div className="max-h-16 flex items-center rounded-full border bg-slate-600 border-neutral-300"> <div className="grow-0 inline-block flex-wrap ml-3 pointer-events-none"> <SearchIcon className="w-5 h-5 text-gray-500 dark:text-gray-400"/> </div> <input type="search" className="bg-transparent bg-gradient-to-l from-indigo-500/50 h-12 pl-3 outline-none flex-auto basis-24 rounded-full text-white" placeholder="Search Tags" required/> </div>
bg-transparent:清除input默认背景色,让渐变样式可以正常显示from-indigo-500/50:设置渐变起始色及透明度(可根据需求调整透明度数值)text-white:适配深色背景,让输入文字更清晰,可根据你的配色方案调整
方法二:用父容器承载渐变,input设为透明
如果方法一在部分旧浏览器仍存在兼容问题,可以将渐变样式放在input的外层容器上,input设置完全透明:
<div className="max-h-16 flex items-center rounded-full border border-neutral-300"> <div className="grow-0 inline-block flex-wrap ml-3 pointer-events-none"> <SearchIcon className="w-5 h-5 text-gray-500 dark:text-gray-400"/> </div> <div className="flex-auto basis-24 h-12 rounded-full bg-gradient-to-l from-indigo-500/50 bg-slate-600 flex items-center"> <input type="search" className="bg-transparent w-full h-full pl-3 outline-none rounded-full text-white" placeholder="Search Tags" required/> </div> </div>
这里将渐变和背景色移至input的外层div,input设置bg-transparent并占满父容器空间,完全继承父容器的渐变背景效果。
内容的提问来源于stack exchange,提问作者Felipe Cristiano
相关产品推荐
相关产品推荐

