问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用css3给文字加渐变颜色,如何实现,求大神帮忙

发布网友 发布时间:2022-04-06 10:43

我来回答

2个回答

懂视网 时间:2022-04-06 15:04

CSS不仅是一种技术,也是一种艺术,如果你运用的好,可以用它创造出各种神奇的效果,随着现代浏览器技术的进步,CSS3的革新,也给了程序员更大的空间和可能性来发挥自己的奇思妙想。那么如何用CSS美化半个字符。其实就是把一个字符劈成两半,一半是A样式,一半是B样式。当然,大家都知道,不论是中文字符还是西文字符,单个字符否是无法拆分的,它们是文字的最新单元,如果是美化半个词或半个句子,这估计大家都知道如何做,也很常见。但半个字符如何美化呢?当然有办法,这里需要的就是艺术。

先看看需要的效果图:

1.png

左边是一种颜色,右边是一种颜色。如果是用图片做,这当然很容易,但图片有图片的局限性,比如不能动态的生成字符样式。下面我们就来看看用纯CSS如何实现这样的效果。

CSS美化半个字符的基本思路

思路很简单,就是一个字写两遍,分别显示一半。思路很清楚,也很简单,但如何实现呢?当然不能真的把一个字写两遍,这样也太愚蠢了,而且当用户拷贝粘贴这段文字时会粘出同样的文字两份。这里就需要用到CSS伪元素:before和:after,记住这个“伪元素”的“伪”字,表明它本来是不存在的。我们的方法就是在伪元素里放置相同的字符,只显示半个,而原字符显示另外一半,最后把它们拼成一个字。

CSS代码

.halfStyle {
 position:relative;
 display:inline-block;
 font-size:80px; /* 任何宽度都可以 */
 color: black; /* 任何颜色,或透明 */
 overflow:hidden;
 white-space: pre; /* 处理空格 */
}
.halfStyle:before {
 display:block;
 z-index:1;
 position:absolute;
 top:0;
 left:0;
 width: 50%;
 content: attr(data-content); /* 伪元素的动态获取内容 */
 overflow:hidden;
 color: #f00;
}

HTML代码

<p>单个字符</p>
<span class="halfStyle lazy " data-content="风">风</span>
<span class="halfStyle lazy " data-content="流">流</span>
<span class="halfStyle lazy " data-content="倜">倜</span>
<span class="halfStyle lazy " data-content="傥">傥</span>

<hr/>
<p>用脚本自动美化:</p>

<span class="textToHalfStyle lazy ">恋爱容易婚姻不易,且行且珍惜。</span>

需要做的就是将.halfStyleCSS类应用到每个需要半边美化的字符上。在上面的代码示例中,每个span里都包含了一个字符,我们在上面放置了data-属性,例如data-content="风",之后在伪元素里我们使用了attr(data-content)方法,这样.halfStyle:before就会变得动态,不需要你手工的硬编码它们的内容。

对于多个字符需要美化的情况,我们可以创建一段jQuery代码自动将所有有.textToHalfStyleCSS类字符添加这种效果:

jQuery(function($) {
 var text, chars, $el, i, output;

 // 遍历所有字符
 $('.textToHalfStyle').each(function(idx, el) {
 $el = $(el);
 text = $el.text();
 chars = text.split('');

 // Set the screen-reader text
 $el.html('
 <span style="position: absolute !important;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);">' 
 + text + '</span>'
 );

 // Reset output for appending
 output = '';

 // Iterate over all chars in the text
 for (i = 0; i < chars.length; i++) {
  // Create a styled element for each character and append to container
  output += '<span aria-hidden="true" data-content="' + chars[i] + '">' + chars[i] + '</span>';
 }

 // Write to DOM only once
 $el.append(output);
 });
});

这样,不论是一段文字还是整篇文字,我们都能一次搞定,不必手工一个一个的设置,也不必一个一个的做图!

高级做法:左右半个字符都用伪元素生成

上面我们的做法中,文字的左半边是用:before伪元素生成的,而右半边使用的是原文字。但实际上我们可以将左右两边都用伪元素生成——右半边用:after实现。

CSS代码

.halfStyle {
 position:relative;
 display:inline-block;
 font-size:80px; /* or any font size will work */
 color: transparent; /* hide the base character */
 overflow:hidden;
 white-space: pre; /* to preserve the spaces from collapsing */
}
.halfStyle:before { /* creates the left part */
 display:block;
 z-index:1;
 position:absolute;
 top:0;
 width: 50%;
 content: attr(data-content); /* dynamic content for the pseudo element */
 overflow:hidden;
 pointer-events: none; /* so the base char is selectable by mouse */
 color: #f00; /* for demo purposes */
 text-shadow: 2px -2px 0px #af0; /* for demo purposes */
}
.halfStyle:after { /* creates the right part */
 display:block;
 direction: rtl; /* very important, will make the width to start from right */
 position:absolute;
 z-index:2;
 top:0;
 left:50%;
 width: 50%;
 content: attr(data-content); /* dynamic content for the pseudo element */
 overflow:hidden;
 pointer-events: none; /* so the base char is selectable by mouse */
 color: #000; /* for demo purposes */
 text-shadow: 2px 2px 0px #0af; /* for demo purposes */
}

你会发现,我们的实现方法可以很灵活,现在表象上是有三个字重叠,我们可以让每个字都各占1/3,这样,我得到一个三色字。上面这些例子都是左右分色,其实我们也可以让它上下分色或上中下分色。

2.png

作为Web程序员也是如此,只有我们用于探索和创新,有很多任务我们都可以用更简单,更方便的方法完成。你有此同感吗?

热心网友 时间:2022-04-06 12:12

<h2 class="text-gradient">天赐美妞</h2>

CSS(CSS代码中关键有用的其实就是最后三行):

.text-gradient {
     display: inline-block;
     color: green;
     font-size: 10em; 
     ont-family: ´微软雅黑´;
     background-image: -webkit-gradient(linear, 0 0, 0 bottom, from(rgba(0, 128, 0, 1)), to(rgba(51, 51, 51, 1)));
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
};

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
白色T 恤如何搭配才能穿出优雅的韵味? 白色T 恤衫怎样搭配才能显得时髦又好看? 白色紧身正肩T 恤想要穿出休闲感,该如何搭配? 手机怎么连接笔记本电脑的wifi上网 电热水器为什么用着用着就没压力了 用什么拖地最干净又耐脏 爱奇艺会员的等级是怎么划分的? 爱奇艺星钻会员怎么开通 怎样才是正确的接吻呢 网页上鼠标点住右键拖动后出的蓝色线条是什么?干什么用的?为什么一松开... 给你的笔友写一封信,介绍你的寒假生活(不少于100字) 用英语写一封给朋友的信,介绍你假期的生活,学习情况!急急急!!!_百度... 给远方朋友的一封信要求:在新学期的打算 求一篇英语作文 给你的朋友写一封信(介绍你在寒假中的活动) 同学们,愉快的假期快要结束了,请给你的亲戚或好朋友写一封信,说说你这个假期都做 写给好朋友的一封信英语版加翻译 同学们,愉快的假期快要结束了,请给你的亲戚或朋友写一封信,说说你这个假期都做了些什么,有什么感受? 给亲朋好友写一封信500关于寒假趣事 求一篇作文。写给朋友的一封信。告诉朋友,我的假期我想去那里。要有计划的。 寒假里的一件事作文用书信方式写一封信600写给朋友 一篇写给远方朋友的一封信(关于寒假) 给假期中未能相聚的亲人或朋友写一封信,分享假期中一件快乐的事400字,注意书信格式,求作文 给朋友的一封信,和她谈谈假期的打算 给朋友的一封信在寒假发生的事情作文 假期安排给朋友的一封信 海上日出的作者 想要葱花饼更暄软,该怎么做呢? 大厨教你如何做出美味的葱花饼,秘诀全在这里,这样做香软可口? 想在家做葱油饼,怎么样才能做的外酥里嫩? 为什么钱借出去容易,收回来这么难? 20多岁的女生突然大量掉头发的原因? 20岁少女掉头发是什么原因 女性掉头发是什么原因?刚20岁就开始掉 真愁啊? 我是女生今年20岁总是掉头发 二十岁年轻女孩掉头发多是什么原因 为什么20岁的女生会大量掉头发 20岁女生掉头发很严重怎么回事 女生掉头发比较厉害是什么原因二十岁 20岁女生常掉头发,为什么? 女性20岁掉头发严重怎么回事? 20岁女生掉头发是什么原因 该注意什么呢 20岁的姑娘,为何掉头发如此严重,怎么结论 洗头的时候,老掉头发怎么办?一掉就掉好多,我一个20岁的女孩子,会不会掉着掉着哪一天就秃了? 20岁女孩掉头发很厉害怎么办 女孩子20岁至28岁之间脱发的原因是什么 20岁之前的女孩为什么会掉头发而且掉的挺多 还有黑眼圈 面包土是怎么做? 20岁女生爱掉头发,经常不吃早饭是什么原因?掉发特别严重。 用面包土怎么做赛车 20岁女生掉头发。体检一切正常,怎么回事呢?请高手赐教