CSS中背景图片透明而文字不透明的实现方法
来源:绵阳动力网络公司  时间:2018-07-30  阅读:10

最近遇到一个需求,要在图片上显示带有半透明背景的文字,效果如下图所示:

CSS中背景图片透明而文字不透明的实现方法

看到这个需求之后,第一反应是使用CSS3中的opacity设置元素的透明度。

效果如下:

CSS中背景图片透明而文字不透明的实现方法

这样貌似也满足了需求,不过并不完美,设置opacity之后,整个元素都半透明了,造成文字显得模糊,这样的解决方式并不可取。

其实实现透明的CSS方法并不只有设置opacity一种方式。还有另外两种:

css3的rgba(red, green, blue, alpha),alpha的取值从 0 到 1,如rgba(255,255,255,0.8)

IE专属滤镜 filter:Alpha(opacity=x),x 的取值从 0 到 100,如filter:Alpha(opacity=80)

在这里我采用了设置rgba的方式:

效果如下:

CSS中背景图片透明而文字不透明的实现方法

这样设置之后,文字显得清晰了许多。

总结:

其实要实现这个需求,并不只有这一种思路,还可以用两个DIV放在同一个位置,一个是半透明的背景DIV,一个是文字DIV,一样可以解决问题,但是需要写绝对定位或负margin,并出现空内容的DIV,这种方法在有些场景下会显得略微复杂,如下示例所示,所以在实际需求场景中还是要具体问题具体分析。

CSS中背景图片透明而文字不透明的实现方法

 

 
  • 电话咨询

  • 0816-2318288