CSS怎样实现文本选中渐变背景?linear-gradient填充

说实话,选择这个中文CSS文本的渐变背景是相当烦人的。
我不明白当时为什么这么复杂。
但一旦你弄清楚了,其实一点也不难。

::selection 的核心是以下几行: CSS ::选择{ 背景图片:线性渐变(右,ff7 e5 f,feb4 7 b); 颜色: 白色; 文本阴影:1 px 1 px 2 px rgba(0,0,0,0.2 );
为了兼容Safari,需要添加::-webkit-selection: CSS ::-webkit-选项 { 背景图片:线性渐变(右,ff7 e5 f,feb4 7 b); 颜色: 白色; 文本阴影:1 px 1 px 2 px rgba(0,0,0,0.2 );
要记住的要点:::selection 只能更改背景、文本颜色和阴影,但不能更改字体大小或边框。
渐变效果应用于所选区域的矩形框架,而不是文本本身。

如果你想让文本有渐变,这个CSS就不起作用了。
您必须使用 JavaScript,如下所示: javascript document.addEventListener('selectionchange', () => { const Selection = window.getSelection(); if (selection.rangeCount > 0) { const range = Selection.getRangeAt(0); const span = document.createElement('span'); span.style.backgroundImage = '线性渐变(右,ff7 e5 f,feb4 7 b)'; span.style.backgroundClip = '文本'; span.style.webkitBackgroundClip = '文本'; span.style.color = '透明'; range.sroundContents(span); } });
但是,这种方法有副作用,并且性能可能会受到损害。
如果取消选中它,则必须删除该标签。
所以我一般不这样做。

选择与背景相反的文本颜色。
例如,如果背景是渐变的,请使用白色作为所选文本颜色并添加阴影以使文本更清晰。
如果背景是深色的,则文本应该是浅色的。

注意浏览器兼容性。
旧版本的 WebKit(例如 Safari)如果没有 ::-webkit-selection 将不起作用。
所以两边都要写。

::selection可以改变以下三种样式:color(文字颜色)、background/background color(背景色或渐变)、text Shadow(文字阴影)。
字体大小无法更改,这是一个硬限制。

推荐的做法是首先使用简单的纯色背景,以确保它可以在所有浏览器中使用,然后在支持线性渐变的浏览器上使用渐变。
这样一来,兼容性好,效果也不错。
最好在一些主流浏览器上测试一下,看看是否有可读性问题。

如何通过css设置元素边框渐变颜色

让我们直接进入核心点:背景剪辑解决方案是最可靠的。

background-clip:border-box是最简单、最高效的。
我上周刚刚参与了一个项目。
我直接用了这个,代码量减少了一半。

伪元素::before/::after是最灵活的。
我正在做的项目需要动态效果,所以只能使用它。

不要碰盒子阴影。
这只能产生发光效果,纯渐变边框根本不起作用。

你自己看看,哪一个最合适?

css渐变色怎么写

2 02 3 年,我的朋友在做网页设计,他发现CSS渐变色非常强大。
他尝试了两个函数:线性梯度()和径向梯度()。

上周,他告诉我用 Linear-gradient() 来创建线性渐变,比如从左到右从红到黄,他写道:background:linear-gradient(toright,red,yellow);
他还尝试了多色渐变,从红到黄到绿,再到蓝色,他写道:background:linear-gradient(toright,red,yellow,green,blue);
他甚至指定了颜色位置,比如红色在 0%,黄色为5 0%,蓝色为1 00%,并写道:background:linear-gradient(toright,red0%,yellow5 0%,blue1 00%);
对于对角渐变,他写道:background:linear-gradient(tobottomright,red,blue);
至于radial-gradient(),它用于创建径向渐变。
比如一个中心为红色,外圈为黄色的圆形渐变,他写的是:background:radial-gradient(circleatcenter,red,yellow);
他还尝试了椭圆渐变,以左上角为起点,他写的是:background:radial-gradient(ellipseattopleft,red,blue);
多色径向渐变也很有趣,他写的是: background:radial-gradient(circle,red,orange,yellow,green);
他还提到了渐变范围,比如从中心到最远的角,写的是:background:radial-gradient(farthest-cornerat3 0%3 0%,red,blue);
朋友还分享了一些高级技巧,比如重复渐变、透明渐变等。

重复渐变示例:background:repeating-linear-gradient(4 5 deg,red,red1 0px,blue1 0px,blue2 0px);
透明渐变示例:background:linear-gradient(toright,rgba(2 5 5 ,0,0,0),rgba (2 5 5 ,0,0,1 ));
他还提到了组合背景图像: background:url("image.jpg"),linear-gradient(tobottom,red,blue);
注:他还说方向关键字要写在颜色列表之前。
较旧的浏览器可能需要前缀,颜色位置可以省略,浏览器会自动均匀分配。

通过这些用法,我的朋友可以创建丰富的渐变效果,用在按钮、背景、边框和其他设计元素上看起来很酷。
这取决于你,你也可以尝试一下。