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 相关文章推荐
a标签的css样式四个状态
Mar 09 HTML / CSS
HTML5如何适配 iPhone IOS 底部黑条
Mar 09 HTML / CSS
html5 的a标签 Href 拨电话的写法
Nov 04 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
Feb 19 HTML / CSS
基于HTML5的齿轮动画特效
Feb 29 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
Oct 08 HTML / CSS
处理textarea中的换行和空格
Dec 12 HTML / CSS
HTML5 实现图片上传预处理功能
Feb 06 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
AmazeUI 模态窗口的实现代码
Aug 18 HTML / CSS
css如何把元素固定在容器底部的四种方式
Jun 16 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
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
js实现目录定位正文示例
2013/11/14 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Python全局变量操作详解
2015/04/14 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
机器学习python实战之手写数字识别
2017/11/01 Python
python占位符输入方式实例
2019/05/27 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
《老王》教学反思
2014/02/23 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
报告会主持词
2014/04/02 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2015选调生工作总结
2015/07/24 职场文书
生产设备维护保养制度
2015/08/06 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python