马黑PHP整站系统

认识CSS的background(九)

位置: 首页 > 前端三套件[ 发布时间: 2024.3.18  作者: 马黑  阅读: 285 ]

本节主要讲 background-clip 属性。clip 有修剪之意,background-clip 指裁剪元素的背景,作用于背景颜色和背景图像,其实就是设定元素的背景延伸到何处,共有四个属性值可供选用:① border-box(默认,背景延伸到边框外缘),② padding-box(修剪到内边距外缘,背景延伸到内边距与边框内缘的衔接处),③ content-box(修剪到内容区域外缘,背景延伸到内容区与内边距内缘衔接处),④ text(按文本样貌修剪背景,背景将“延伸到”文本之上,即只在内容区域的文本笔画上面呈现背景)。下面的演示,演示div盒子设置了元素的边框、内边距、较大的字号以及背景色和可选的背景渐变图像,从而能更好地体现出四个属性值被设定后 background-clip 属性的具体表现:

padding: 16px;
border: 10px dashed purple;
background-color: lightblue;
background-image: var(--img);

||

前三个属性都是标准属性,除了已经废弃的IE外,所有现代浏览器均完好支持。第四个属性,text,背景颜色或图像被剪裁成文字背景,是个冷门属性,最新版的Chrome、Edge、Firefox均已支持,但不是最新版本的不好说,补救方法是在 background-clip 前加一个前缀-webkit-即可。具体代码举例如下:

/* background-clip属性值共四个 :border-box, padding-box, content-box, text 当 background-clip 属性值为 text 时,为兼容起见,下面两行代码均需要 */
background-clip: text; -webkit-background-clip: text;  
/* JS 表达 background-clip 方法 假如要操作的盒子 id="myBox" */
myBox.style.backgroundClip = 'text'; myBox.style.webkitGroundClip = 'text'; /* 或者使用 cssText 按 CSS 方式来写*/ myBox.style.cssText += ` background-clip: text; -webkit-background-clip: text; `;

要使用 text 属性,应将元素的前景色 color 设置为透明,可以使用如下方法的任意一种:

/* 使用颜色关键词 */ color: transparent; /* 使用 rgba */ color: rgba(0,0,0,0); /* 使用 hsla */ color: hsla(0,100%,100%,0);

同时,最好不要设置 text-shadow 即文本阴影属性,因为这个属性的颜色在渲染前景色时会直接取代前景色的 transparent 透明值,实在非设置不可时,建议使用透明度较大的 rgba 或 hsla 颜色值以减少阴影颜色对前景色的干扰。

前一篇: 认识CSS的background(八)
下一篇: 实现本地可视化音频播放效果实例

发表评论:

       

评论列表 [2条]

#2 | 马黑 于 2024-3-18 13:46 发布: background-clip 背景裁剪属性设为 text 后,文本不设为透明,则文本会以默认的黑色或CSS设置的颜色或浏览器预设的前景色呈现,所以必须设置前景色为透明。

#1 | 飞飞 于 2024-3-18 12:38 发布: 背景色里text的渐变最有意思了。。好看得很。。。不过正讲背景呢,最后突然出来个text前景要透明。。既透明岂不是不设也可以涅。。。。。

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com