如何使用Tailwind CSS优化平滑模糊效果?消除模糊边缘生硬问题
解决模糊效果出现生硬圆圈的问题
这个问题是因为模糊效果的扩散范围被元素本身的尺寸限制导致的:你设置了blur-[10rem],意味着模糊会向元素四周各延伸10rem,但你的元素宽高只有25rem,模糊边缘直接被元素边界截断,就出现了生硬的圆圈。
给你几个可行的解决方法:
直接增大模糊元素的尺寸
把元素的宽高调整为「原尺寸 + 2模糊半径」,也就是25rem + 210rem = 45rem,这样模糊的扩散范围就不会被元素边界挡住。同时因为元素变大了,需要用-translate-x-1/2 -translate-y-1/2调整定位,保证视觉位置和之前一致:<div> <div className='w-[45rem] h-[45rem] bg-[#64403b] rounded-full blur-[10rem] absolute top-17 left-[50rem] -translate-x-1/2 -translate-y-1/2'></div> <div className='w-[45rem] h-[45rem] bg-[#422277] rounded-full blur-[10rem] absolute top-17 left-[30rem] -translate-x-1/2 -translate-y-1/2'></div> </div>用内边距扩展模糊范围(可选)
不想改元素尺寸的话,可以给模糊元素加等于模糊半径的内边距,把背景色放到内层元素上,让模糊能向内充分扩散:<div> <div className='p-[10rem] rounded-full blur-[10rem] absolute top-17 left-[50rem]'> <div className='w-[25rem] h-[25rem] bg-[#64403b] rounded-full'></div> </div> <div className='p-[10rem] rounded-full blur-[10rem] absolute top-17 left-[30rem]'> <div className='w-[25rem] h-[25rem] bg-[#422277] rounded-full'></div> </div> </div>记住比例原则
以后做模糊效果时,尽量保证元素宽高至少是模糊半径的2倍以上,留足扩散空间,就不会再出现这种硬边界问题。
内容的提问来源于stack exchange,提问作者nawola
相关产品推荐
相关产品推荐

