css gradient,css radial-gradient

  css gradient,css radial-gradient

  我来介绍一个有趣的属性——圆锥-梯度。

  圆锥渐变!

  我对它感兴趣是因为我发现它可以用来做圆饼图

  例如:

  像这样:

  原理也很简单:以起点为中心,然后围绕中心顺时针实现渐变效果。它必须接收多个颜色值参数,每个颜色值后面可以跟两个百分比,分别是当前颜色值的起点和终点(中间用空格隔开):

  背景:圆锥形梯度(粉红色0.30%,黄色0.70%,石灰0.100%);也可以单独写:

  背景:圆锥形渐变(粉红色0,粉红色30%,黄色30%,黄色70%,石灰70%,石灰100%);(第二种方法的兼容性比第一种好一点)

  等等!上面第二张图不就是我们想要的吗?

  根据图片,我们不难得到如下代码:

  {宽度:200px高度:200px背景:圆锥形渐变(深粉色0,深粉色30%,黄绿色30%,黄绿色70%,蓝绿色70%,蓝绿色100%);边界半径:50%;}但是,它在此完全是“静态”的。

  大概我们大多数人都用过echarts绘制图形:根据后端传来的数据,渲染成echarts的Map对象的指定参数(数组),就可以得到符合要求的不同颜色的饼状图。如何用CSS做到这一点?

  当然,我们还得借助JS ——,因为css3引入了自定义变量,可以很好地将css属性和JavaScript变量结合起来:

  经过探索,目前比较好的实践应该就是给gradient的颜色开始与结束位置设置为自定义变量,然后当JavaScript拿到数据后通过改变其值从而改变圆饼图中的颜色分布!

  放一个以前写过的演示:

  :root {-zero:0;-一:50%;}.圆形{宽度:300px高度:300px边界半径:50%;/*背景:圆锥形渐变(红色、黄色、石灰色、浅绿色、蓝色、紫红色、红色);*/背景:圆锥形-渐变(红色var( -零)var( -一),黄色var( -一)100%);} div class= circle /div button id= but point I change饼图分布/buttonscriptbut . onclick=function(){ document . documentelement . style . set property(-zero , 10% );document . document element . style . set property(-one , 70% );}/script如果要动态增加颜色值(例如添加新的测量对象),可以动态修改样式中的属性:

  XXX . style . XXX= XXX ;//这样改比用“::after伪元素”实现方便多了!

  伪元素法可能很多人都玩过:利用transform的rotate属性旋转一个内容框和显示部件,达到目的。

  还有很多“骚操作”应该在网上搜一下,这里就不赘述了(:比起前两年浏览器对这个属性的“冷漠”到现在的部分支持,也是很大的进步了。让我们继续期待吧)

  

关于 linear-gradient

  这个属性除了在某些网站上作为某个元素的背景之外,似乎没什么值得注意的:

  比如条纹背景。

  如果多个色标具有相同的位置,它们将产生无限小的过渡区域,

  过渡的开始和结束颜色分别是第一个和最后一个指定的值。实际上,颜色会在那里。

  位置的突然变化,而不是平稳渐进的过程。"

  因为渐变是代码生成的图像,所以我们可以像对待其他背景图像一样对待它,通过background-size来调整它的大小;由于默认情况下背景是重复平铺的,因此整个容器实际上已被水平条纹填满:

  背景:线性梯度(#fb3 50%,# 58a 50%);背景尺寸:100% 30px;

  纵条纹

  竖条纹的代码和横条纹的代码几乎一样。主要的区别是我们需要

  在开头添加一个额外的参数来指定渐变的方向。在水平条纹代码中,我们

  你也可以添加这个参数,但是它的缺省值bottom是我们想要的。

  图,故省略。最后,我们需要反转背景大小的值。

  片刻:

  背景:线性渐变(向右,#fb3 50%,# 58a 0);背景尺寸:30px 100%;应该注意,如果第一个参数被添加到线性梯度,其默认方向将是“自下而上”。为此,作者还向菜鸟教程发了一封邮件,建议他们修改文档中的措辞。

  倾斜条纹

  仅仅改变线性渐变的第一个参数3354的角度值或者通过背景-大小来增加“精度”的“传统”方式并不能有效地实现真正完美的倾斜背景:它们总是在改变大小或者改变倾斜度时混淆整个图案!

  幸运的是,我们有更好的方法来创建斜条纹:一个鲜为人知的事实是,linear-gradient()和radial-gradient()各有一个循环增强版本:repeating-linear-gradient()和repeating-radial-gradient()。

  它们的工作方式与前两者相似,只有一点不同:色阶不断重复,笔直

  填充整个背景!

  背景:重复线性梯度(45度,#fb3,# 58a 30px);

  哦,对了,和上面一样,所有“-gradient”属性,在起始位置和结束位置没有限制的情况下,都会有“渐变发光”。如果我们将其更改为以下内容:

  背景:重复线性梯度(60度,#fb3 0 15px,# 58a 0 30px);

  看到这张图是不是想起了一个著名的案例,三角3354?

  背景:# eee背景图像:线性渐变(45度,透明75%,# BBB 0);我们过去常常用CSS这样写:

  宽度:0;高度:0;边框:50px纯色透明;边框-顶部-颜色:黑色;实际上,线性梯度比这有用得多…

  2020-10-17更新

  

radial-gradient及整体应用

  我们大概都知道滚动条是一个常见的界面控件,用来表示一个元素包含的内容比可以看到的内容多。然而,它往往过于笨重,视觉上令人无法抗拒,所以现代操作系统已经开始简化它的外观。当用户不与可滚动元素交互时,滚动条将完全隐藏。

  在已知的“移除滚动条”方法中,最常用的有:-WebKit-scroll bar { display:none;},但是很明显,——不能用在IE上。它只允许改变滚动块的颜色。

  在CSS3时代,我们可以在要添加滚动条的地方绕一个div,为它设置overflow:hidden,内部用calc()函数动态计算宽度,使其溢出!这样可以有效解决IE下的兼容性问题。

  现在我们很少通过滚动条滚动页面(更多时候是用触摸手势),但是滚动条作为元素内容可以滚动的提醒还是很有用的,即使是对于那些没有交互的元素;而且这个提示方法很巧妙。

  据说Google曾经推出过一个RSS阅读器(现在已经没有了),它的用户体验设计师找到了一个非常优雅的方式来做出类似的提示:当侧边栏的容器中有更多的内容时,容器的顶部和底部会出现一个淡淡的阴影。就像这样:

  让我们从一个简单的结构代码开始,一个普通的无序列表,有示意性的内容:

  ulli ada cat lace/Lili Alan Purring/Lili schr dingcat/Lili Tim Purrners-Lee/Lili webkitty/Lili JSON/Lili void/Lili neko/李林安/Lili cat 5/Lili vector/Lili ada cat lace/Lili Alan Purring/Lili schr dingcat/Lili Tim Purrners-Lee/Lili webkitty/Lili JSON/Lili void/Lili neko/李林安/Lili cat 5/Lili vector/Lili ada cat/Lili Alan Purring/Lili schr dingcat/Lili Tim Purrners-Lee/Lili webkitty/Lili JSON

  溢出:自动;宽度:10em身高:8em填充: 3em .5em边框:1px纯银;接下来,有趣的事情即将发生。我们在顶部添加一个径向渐变的阴影:

  背景:径向梯度(在顶部,rgba(0,0,0, 2),透明70%)无重复;背景尺寸:100% 15px;现在,当我们滚动列表时,这个阴影一直保持在同一个位置。这是背景图像的默认行为:它的位置相对于元素是固定的!元素的内容是否滚动。这也适用于background-attachment: fixed的背景图像。它们之间的唯一区别是,当页面滚动时,后者相对于视口是固定的。有什么办法可以让背景图片随着元素内容一起滚动?

  目前常见的值只有inherit、scroll和fixed,但是从W3C文档中可以看到,在background-attachment属性中增加了一个新的关键字叫做local。

  如果将这个属性应用到这个阴影上,会给我们带来刚好相反的效果:当我们滚动到顶部时,可以看到一个阴影;但是当我们向下滚动时,这个阴影就消失了。

  不过没关系,我们有正确的想法!

  我想到了一个常见的技巧:我们需要两层背景:一层用于生成阴影,另一层基本上是一个白色矩形,用于遮挡阴影,类似于遮罩层。生成阴影的背景层将有默认的背景附着值(滚动),因为我们希望它总是保持在原来的位置。我们将蒙版背景的background-attachment属性设置为local,这样当我们滚动到顶部时,它将覆盖阴影,当我们向下滚动时,它将随之滚动,从而暴露阴影。

  背景:线性梯度(白色30%,透明),径向梯度(在50% 0,rgba(0,0,0, 2),透明70%);背景-重复:不重复;背景尺寸:100% 50px,100% 15px;背景-附件:本地,滚动;没错,这是线性渐变3354渐变蒙版图层的又一个应用!

  但是现在我们会发现:现在只有顶部,底部怎么了?

  这就需要使用css中的“速记”和对*-gradient的理解:如果不添加第一个参数(不指明方向),默认会从上到下逐渐变化,但如果添加了第一个参数但没有指明到底部或100%,默认会从下到上逐渐变化!

  背景:线性渐变(白色30%,透明)顶部/100% 50px,径向渐变(在50% 0,rgba(0,0,0, 2),透明72%)顶部/100% 15px,线性渐变(到顶部,白色15px,hsla(0,0%,100%,0%)底部/100% 50px,径向渐变(在底部,rgba(0,0,0, 2),透明72%)底部/100% 15px;背景-重复:不重复;背景-附件:本地、滚动、本地、滚动;关于探索CSS属性*-gradient实用价值的这篇文章到此为止。有关CSS属性渐变的更多信息,请搜索以前的文章或继续浏览下面的相关文章。希望你以后能支持我!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: