CSS3实现背景透明文字不透明的示例代码


Posted in HTML / CSS onJune 25, 2018

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

CSS3实现背景透明文字不透明的示例代码

需求.png

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

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>背景透明,文字也透明</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .container {
            width: 600px;
            height: 400px;
            background: url('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') no-repeat;
            background-size: cover;
            -webkit-background-size: cover;
            -o-background-size: cover;
            background-position: center 0;
        }

        .demo {
            position: absolute;
            width: 260px;
            height: 60px;
            top: 260px;
            line-height: 60px;
            text-align: center;
            background-color: black;
            opacity: 0.5;
        }

        .demo p {
            color: #FFF;
            font-size: 18px;
            font-weight: 600;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="demo">
            <p>2018世界杯已开幕:10天</p>
        </div>
    </div>
</body>

</html>

效果如下:

CSS3实现背景透明文字不透明的示例代码

背景透明,文字也透明.png

这样貌似也满足了需求,不过并不完美,设置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的方式:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>背景透明,文字不透明</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .container {
            width: 600px;
            height: 400px;
            background: url('https://img1.dongqiudi.com/fastdfs3/M00/18/56/ChOxM1stHByARuNmAAGsJDKXtuM269.jpg') no-repeat;
            background-size: cover;
            -webkit-background-size: cover;
            -o-background-size: cover;
            background-position: center 0;
        }

        .demo {
            position: absolute;
            width: 260px;
            height: 60px;
            top: 260px;
            line-height: 60px;
            text-align: center;
            background-color: rgba(0,0,0,0.5);
        }

        .demo p {
            color: #FFF;
            font-size: 18px;
            font-weight: 600;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="demo">
            <p>2018世界杯已开幕:10天</p>
        </div>
    </div>
</body>
</html>

效果如下:

CSS3实现背景透明文字不透明的示例代码

背景透明,文字不透明.png

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

小结

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

CSS3实现背景透明文字不透明的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
使用CSS3的rem属性制作响应式页面布局的要点解析
May 24 HTML / CSS
检测用户浏览器是否支持CSS3的方法
Aug 29 HTML / CSS
使用css3做0.5px的细线的示例代码
Jan 18 HTML / CSS
详解CSS3新增的背景属性
Dec 25 HTML / CSS
HTML5 canvas 基本语法
Aug 26 HTML / CSS
多视角3D逼真HTML5水波动画
Mar 03 HTML / CSS
HTML5 新标签全部总汇(推荐)
Jun 13 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
Jul 13 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
Jan 05 HTML / CSS
HTML5播放实现rtmp流直播
Jun 16 HTML / CSS
CSS3 制作的图片滚动效果
Apr 14 HTML / CSS
css弧边选项卡的项目实践
May 07 HTML / CSS
css3 column实现卡片瀑布流布局的示例代码
Jun 22 #HTML / CSS
CSS3 清除浮动的方法示例
Jun 01 #HTML / CSS
CSS3之transition实现下划线的示例代码
May 30 #HTML / CSS
CSS3实现可翻转的hover效果
May 23 #HTML / CSS
详解如何在css中引入自定义字体(font-face)
May 17 #HTML / CSS
CSS3实现多样的边框效果
May 04 #HTML / CSS
纯css3制作煽动翅膀的蝴蝶的示例
Apr 23 #HTML / CSS
You might like
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
详解JS函数防抖
2020/06/05 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python根据路径导入模块的方法
2014/09/30 Python
详解Python中的多线程编程
2015/04/09 Python
分析python切片原理和方法
2017/12/19 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
应届生程序员求职信
2013/11/05 职场文书
水利学院求职自荐书
2014/02/01 职场文书
导游个人求职信
2014/04/25 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
党课心得体会范文
2014/09/09 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
小学英语新课改心得体会
2016/01/22 职场文书