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 transform 属性来变换背景图的方法
May 07 HTML / CSS
css3背景图片透明叠加属性cross-fade简介及用法实例
Jan 08 HTML / CSS
CSS3田字格列表的样式编写方法
Nov 22 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
Sep 02 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
HTML5拖拽的简单实例
May 30 HTML / CSS
详解html5页面 rem 布局适配方法
Jan 12 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
Nov 22 HTML / CSS
Canvas波浪花环的示例代码
Aug 21 HTML / CSS
CSS3实现的文字弹出特效
Apr 16 HTML / CSS
通过feDisplacementMap和feImage实现水波特效
Apr 24 HTML / CSS
HTML页面中使两个div并排显示的实现
May 15 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
合作指挥官:孟斯克
2020/03/16 星际争霸
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
javascript一点特殊用法
2008/05/28 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
jQuery中last()方法用法实例
2015/01/06 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
Win10下Python环境搭建与配置教程
2016/11/18 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python 多进程、多线程效率对比
2020/11/19 Python
python飞机大战游戏实例讲解
2020/12/04 Python
利用python进行文件操作
2020/12/04 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
python 实现客户端与服务端的通信
2020/12/23 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
优秀三好学生事迹材料
2014/08/31 职场文书
瘦西湖导游词
2015/02/03 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python